Standardmäßig enthält CORS keine Cookies für Cross-Origin-Anfragen. Dies unterscheidet sich von anderen originensübergreifenden Techniken wie JSON-P. JSON-P enthält immer Cookies in der Anfrage. Dieses Verhalten kann zu einer Klasse von Sicherheitslücken führen, die als Cross-Site Request Forgery (CSRF) bezeichnet werden.
Um die Wahrscheinlichkeit von CSRF-Schwachstellen in CORS zu verringern, müssen sowohl der Server als auch der Client bestätigen, dass es in Ordnung ist, Cookies in Anfragen aufzunehmen. Dadurch werden Cookies zu einer aktiven Entscheidung und nicht zu einer passiven Entscheidung ohne Kontrolle.
Der Client-Code muss die withCredentials
Eigenschaft auf XMLHttpRequest
to true
setzen, um die Berechtigung zu erteilen.
Dieser Header allein reicht jedoch nicht aus. Der Server muss mit dem Access-Control-Allow-Credentials
Header antworten . Wenn Sie mit diesem Header auf antworten, true
bedeutet dies, dass der Server das Einfügen von Cookies (oder anderen Benutzeranmeldeinformationen) in Ursprungsanfragen zulässt.
Sie müssen auch sicherstellen, dass Ihr Browser keine Cookies von Drittanbietern blockiert, wenn Sie möchten, dass Anforderungen für Cross-Origin-Anmeldeinformationen funktionieren.
Beachten Sie, dass Sie Ihre Website unabhängig davon, ob Sie Anfragen gleichen oder unterschiedlichen Ursprungs stellen, vor CSRF schützen müssen (insbesondere, wenn Ihre Anfrage Cookies enthält).