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.