Verständnis AJAX CORS und überlegungen zur Sicherheit
Ich versuche zu verstehen, warum CORS arbeitet in der Weise, dass es funktioniert.
Da erfuhr ich von dieser Beitrag, wenn die Seite von www.a.com macht AJAX-request www.b.com, dann ist es die www.b.com , der entscheidet, ob eine Anfrage erlaubt werden sollte oder nicht.
Aber was genau ist gesichert auf client-in einem solchen Modell?
Zum Beispiel, wenn es einem hacker gelingt, um ein XSS script-injection zu meiner Seite, dann macht es ein AJAX-request zu seiner Domäne zum speichern von Benutzerdaten. So ein hacker-Domäne wird eine solche Anfrage für Sie sicher.
Dachte ich, dass www.a.com entscheiden sollte, welche domains zu erlauben, die Anfrage zu. So in der Theorie in einer Kopfzeile Access-Control-Allow-Origin " ich würde gerne die ganze Liste der domains, die erlaubt sind für die AJAX-CORS-Anfragen.
Kann mir jemand erklären, welche Sicherheitsprobleme die aktuellen CORS Umsetzung behandelt?
InformationsquelleAutor Alex Dn | 2014-02-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht ganz. Die Anforderung nicht blockiert ist.
Standardmäßig das JavaScript läuft auf
www.a.com
ist verboten der Zugriff auf die Antwort vonwww.b.com
.CORS ermöglicht
www.b.com
die Erlaubnis, die von JavaScript auswww.a.com
um auf die Antwort.Er hält den Autor von
www.a.com
aus Lesen von Daten auswww.b.com
mit dem browser von Einem Benutzer besuchte Websites und authentifiziert wurde aufwww.b.com
(und hat damit Zugriff auf Daten, die nicht öffentlich).Beispielsweise Alice angemeldet ist Google. Alice besucht
malicious.example
verwendet XMLHttpRequest, um auf Daten ausgmail.com
. Alice hat ein GMail-Konto, so dass die response hat eine Liste der aktuellsten E-Mail in Ihrem Posteingang. Die same-origin-policy verhindert, dassmalicious.example
aus, es zu Lesen.Richtig. XSS ist ein anderes Sicherheitsproblem, das gelöst werden muss an der Quelle (also bei
www.a.com
und nicht im browser).InformationsquelleAutor Quentin
Neben @Quentin ausgezeichnete Antwort, es gibt eine andere Technik, bekannt als Content Security Policy, die beschreibt, was Sie sind nach.
Mit CSP, konnten Sie eine Kopfzeile, die von Ihrer Domäne (
www.a.com
in deinem Beispiel) zu beschränken AJAX-Anfragen:Also diese zu verwenden, können Sie diese
Content-Security-Policy
HTTP-header, HTML-Antwort:Diese beschränken AJAX-Anfragen zu
www.a.com
wenn dieser header wird in der Antwort vonwww.a.com
:Siehe hier für die unterstützten Browser.
InformationsquelleAutor SilverlightFox