Frage

Warum Browser derselben Ursprung Politik XMLHttpRequest gelten? Es ist wirklich unbequem für Entwickler, aber es scheint es in tatsächlich zu stoppen Hacker wenig tut. Es gibt Workarounds, können sie immer noch Javascript aus externen Quellen enthalten (die treibende Kraft hinter JSONP).

Es scheint wie ein veraltetes „Feature“ in einem Netz, das weitgehend vernetzt ist.

War es hilfreich?

Lösung

Da ein XMLHttpRequest übergibt den Authentifizierungs-Token des Benutzers. Wenn der Benutzer auf example.com angemeldet wurde mit grundlegenden auth oder einige Cookies, besuchte dann attacker.com, könnte diese Website für den Benutzer ein XMLHttpRequest zu example.com mit voller Berechtigung erstellen und jede private Seite lesen, dass der Benutzer könnte (dann übermittelt es den Angreifer zurück).

Da geheime Token in Webapp Seiten setzt die Art und Weise ist einfach Cross-Site-Request-Forgery-Angriffe zu stoppen, bedeutet dies attacker.com alle Aktionen auf Seite nehmen könnte der Benutzer ohne Zustimmung oder Interaktion bei example.com könnte aus Sie. Globale XMLHttpRequest ist globales Cross-Site-Scripting.

(Auch wenn Sie eine Version von XMLHttpRequest hatte, der keine Authentifizierung bestanden haben, gibt es immer noch Probleme. Zum Beispiel kann ein Angreifer Anfragen an andere nicht-öffentlichen Computer in Ihrem Intranet machen könnte und alle Dateien lesen es von ihnen herunterladen die nicht für die Öffentlichkeit gedacht werden. <script> Tags bereits von einer begrenzten Form dieser Art von Verletzlichkeit leiden, aber die vollständig lesbaren Antworten von XMLHttpRequest würde alle Arten von Dateien anstelle von wenigen leider gefertigten diejenigen auslaufen, die als JavaScript parsen ).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top