22 Punkte von ragus 2025-01-10 | Noch keine Kommentare. | Auf WhatsApp teilen

1. Verstehen Sie, dass CORS ein Provisorium ist, um einen Designfehler des Browsers auszugleichen.

  • CORS (Cross-Origin Resource Sharing) behebt Sicherheitsprobleme, die durch implizite Anmeldedaten bei Cross-Origin-Anfragen entstehen.
  • Das Standardverhalten von Browsern setzt Benutzer dem Risiko von XSRF-Angriffen aus.
  • CORS versucht, diese Probleme abzumildern, hat aber grundlegende Grenzen in seinem Sicherheitsumfang.

2. CORS verhindert das Lesen der Ergebnisse von Cross-Origin-Anfragen, blockiert aber nicht die Anfrage selbst.

  • fun-games.example kann die Daten von your-bank.example nicht lesen, kann aber weiterhin zustandsändernde Anfragen wie Geldüberweisungen ausführen.
  • Das liegt daran, wie Browser standardmäßig mit Cookies und Anmeldedaten umgehen.

3. Effektive Cross-Origin-Sicherheit beginnt damit, implizite Anmeldedaten zu ignorieren.

  • Entfernen Sie Cookies und cookieähnliche Anmeldedaten aus Cross-Origin-Anfragen oder erlauben Sie sie nur ausdrücklich.
  • Verwenden Sie Middleware, die mit Sec-Fetch-*-Headern Cross-Origin-Cookies filtert oder entfernt.

4. Explizite Anmeldedaten sind eine sicherere Alternative zu impliziten Anmeldedaten.

  • Verwenden Sie statt Cookies den Authorization-Header für Authentifizierungs-Token.
  • Explizite Anmeldedaten verhindern den Missbrauch von Anmeldedaten zwischen verschiedenen Websites.
  • Für serverseitig gerenderte Websites ist das nicht geeignet, für APIs und clientseitige Anwendungen aber die beste Methode.

5. Implementieren Sie SameSite-Cookies, um die Nutzung von Cross-Origin-Anmeldedaten einzuschränken.

  • Verwenden Sie standardmäßig SameSite=Lax, damit Cookies nicht in Cross-Origin-Anfragen einbezogen werden.
  • Für eine strengere Richtlinie wählen Sie SameSite=Strict. Beachten Sie jedoch, dass dies die Nutzbarkeit beeinträchtigen kann (z. B. Ausloggen nach Cross-Origin-Navigation).

6. Nutzen Sie eine einfache und sichere CORS-Richtlinie.

  • Standardrichtlinie: Access-Control-Allow-Origin: * und Access-Control-Allow-Methods: * erlauben nur anonymen Zugriff.
  • Diese Richtlinie deaktiviert implizite Anmeldedaten bei Cross-Origin-Anfragen und schützt Websites so vor unbeabsichtigtem Missbrauch von Anmeldedaten.

7. Machen Sie Ihre CORS-Richtlinie aus Sicherheitsgründen nicht unnötig kompliziert.

  • Eine zu spezifische Konfiguration kann ein falsches Sicherheitsgefühl erzeugen.
  • CORS-Proxys und andere Workarounds können von Browsern erzwungene Richtlinien umgehen und so Bemühungen zur Zugriffsbeschränkung zunichtemachen.

8. Verstehen Sie die breitere Bewegung hin zu sichereren Web-Standards.

  • Browser erproben Ansätze wie State Partitioning (Firefox), Tracking Prevention (Safari) und CHIPS (Chrome), um Probleme mit Cross-Origin-Anmeldedaten zu lösen.
  • Diese Initiativen sollen Sicherheit und Privatsphäre der Nutzer verbessern, indem sie das Teilen von Cookies und Anmeldedaten zwischen verschiedenen Origins einschränken.

9. Erkennen Sie, dass CORS eine unvollständige Lösung ist.

  • Die Abwärtskompatibilität von CORS erhöht die Komplexität, ohne die grundlegenden Sicherheitsprobleme vollständig zu lösen.
  • Browser führen langsam neue Ansätze ein, um diese Probleme abzumildern, aber die Fortschritte sind uneinheitlich.

Noch keine Kommentare.

Noch keine Kommentare.