cors

cors browser security

+6

Cross-Origin Resource Sharing

(CORS) ist ein Sicherheitsmechanismus in Webbrowsern, der auf der Same-Origin-Policy (SOP) basiert. Er erlaubt es Servern, Ausnahmen für den Zugriff auf ihre Ressourcen durch Skripte auf anderen Domains zu definieren. Ohne CORS würden Browser Anfragen an fremde Domains standardmäßig blockieren. Der Schutz wird durch HTTP-Header gesteuert. 

Wichtige Sicherheitsaspekte von CORS:
  • Funktionsweise: Browser fügen einen Origin-Header hinzu, und der Server antwortet mit Access-Control-Allow-Origin, um Zugriffe zu erlauben oder zu verbieten.
  • Preflight-Requests: Bei komplexen Anfragen (z.B. POST) sendet der Browser eine OPTIONS-Anfrage, um zu prüfen, ob der Server die eigentliche Anfrage akzeptiert.
  • Best Practices:
    • Vermeidung von *: Setzen Sie den Access-Control-Allow-Origin-Header in der Produktion niemals auf * (alle), sondern spezifizieren Sie erlaubte Domains.
    • Credential-Schutz: Nutzen Sie Access-Control-Allow-Credentials nur, wenn nötig.
    • HTTPS: Verwenden Sie immer HTTPS für Cross-Origin-Anfragen.
  • Fehlkonfigurationen: Falsch konfigurierte CORS-Regeln können zu Sicherheitslücken führen, wie dem Auslesen vertraulicher Daten (Information Leakage).
  • Grenzen: CORS ist kein Ersatz für serverseitige Sicherheitsmaßnahmen und schützt nicht gegen Angriffe wie CSRF. 
CORS schützt Benutzer, indem es verhindert, dass bösartige Websites über den Browser des Nutzers unbefugt auf Daten anderer Webseiten zugreifen