Was ist der Zweck der Anti-Cross-Domain-Richtlinie?

7

Warum haben die Ersteller des HTML-DOM und / oder Javascript entschieden, domainübergreifende Anfragen abzulehnen?

Ich kann einige sehr kleine Sicherheitsvorteile erkennen, wenn ich es verbiete, aber auf lange Sicht scheint es ein Versuch zu sein, Javascript-Injection-Attacken weniger Power zu geben. Das ist alles egal mit JSONP, es bedeutet nur, dass der JavaScript-Code ein kleines bisschen schwieriger zu machen ist und Sie müssen serverseitige Zusammenarbeit haben (obwohl es Ihr eigener Server sein könnte)

    
Earlz 24.06.2010, 19:26
quelle

4 Antworten

11

Das eigentliche domänenübergreifende Problem ist enorm. Angenommen, SuperBank.com sendet intern eine Anfrage an http://www.superbank.com/transfer?amount=100&to=123456 , um $ 10.000 an die Kontonummer 123456 zu übertragen. Wenn ich Sie auf meine Website bringen kann und Sie bei SuperBank eingeloggt sind, muss ich lediglich eine AJAX-Anfrage an SuperBank senden. com, um Tausende von Dollars von Ihrem Konto zu mir zu bewegen.

Der Grund, warum JSON-P akzeptabel ist, ist, dass es ziemlich unmöglich ist, dass es missbraucht wird. Eine Website, die JSON-P verwendet, deklariert die Daten quasi als öffentliche Information, da dieses Format zu unbequem ist, um es anderweitig zu verwenden. Aber wenn es unklar ist, ob Daten öffentliche Informationen sind oder nicht, muss der Browser annehmen, dass dies nicht der Fall ist.

    
Matchu 24.06.2010 19:32
quelle
9

Wenn Cross-Domain-Scripting erlaubt ist (oder von einem cleveren Javascripter gehackt wird), kann eine Webseite auf Daten von einer anderen Webseite zugreifen. Beispiel: joeblow.com kann auf Ihr Google Mail-Konto zugreifen, während Sie mail.google.com geöffnet haben. joeblow.com könnte Ihre E-Mails lesen, Ihre Kontakte spammen, E-Mails von Ihnen fälschen, Ihre E-Mails löschen oder eine Menge schlechter Nachrichten.

    
mcandre 24.06.2010 19:31
quelle
1

Um einige der Ideen in den Fragen zu einem bestimmten Anwendungsfall zu klären ..

Die Cross-Domain-Richtlinie ist normalerweise nicht dazu da, Sie vor sich selbst zu schützen. Es schützt die Benutzer Ihrer Website vor den anderen Benutzern Ihrer Website (XSS).

Stellen Sie sich vor, Sie hätten eine Website, auf der Menschen beliebigen Text eingeben können, einschließlich JavaScript. Einige böswillige Benutzer beschließen, dem Feld "Über sich selbst" etwas Javascript hinzuzufügen. Nutzer Ihrer Website würden durch sein Profil navigieren und dieses Skript in ihrem Browser ausführen lassen. Dieses Skript hat, seit es auf Ihrer Website ausgeführt wird, Zugriff auf Cookies und solche von Ihrer Website.

Wenn der Browser die domänenübergreifende Kommunikation zulässt, könnte dieses Skript theoretisch Ihre Informationen sammeln und dann auf einen Server hochladen, den der böswillige Benutzer besitzen würde.

    
badunk 12.04.2012 01:01
quelle
0

Hier ist eine Unterscheidung für Sie: Cross-Domain AJAX ermöglicht eine bösartige Website, um Ihren Browser Dinge in ihrem Namen zu machen, während JSON-P ermöglicht ein böswilliger Server manipulieren die Seiten einer einzelnen Domain (und den Browser Dinge machen) zu dieser Domäne in Ihrem Namen), aber (kritisches Bit) nur, wenn die Seite, die bedient wurde, aus dem Weg ging, um die bösartige Nutzlast zu laden.

Also ja, JSON-P hat einige Auswirkungen auf die Sicherheit, aber sie sind strikt darauf eingestellt, dass die Website sie benutzt. Wenn man allgemeines domainübergreifendes AJAX erlaubt, öffnet sich eine viel größere Dose Würmer.

    
Andrew Aylett 24.06.2010 19:38
quelle