1. Same-Origin-Strategie
Um domänenübergreifend zu verstehen, müssen wir zunächst wissen, was die Same-Origin-Richtlinie ist. Baidu Encyclopedia definiert die Same-Origin-Richtlinie wie folgt: Sie ist die wichtigste und grundlegendste Sicherheitsfunktion des Browsers. Wenn die Same-Origin-Richtlinie fehlt, können die normalen Funktionen des Browsers beeinträchtigt sein. Man kann sagen, dass das Web auf der Grundlage der Same-Origin-Richtlinie aufgebaut ist und der Browser nur eine Implementierung der Same-Origin-Richtlinie ist.
Was ist der gleiche Ursprung: Wenn der Domänenname, das Protokoll und der Port zweier URLs gleich sind, bedeutet das, dass sie denselben Ursprung haben.
Die Same-Origin-Richtlinie des Browsers verhindert, dass „Dokumente“ oder Skripte aus unterschiedlichen Quellen bestimmte Attribute für das aktuelle „Dokument“ lesen oder festlegen. (White Hat spricht über Websicherheit[1]). Gemäß dieser Richtlinie kann JavaScript unter dem Domänennamen a.com Objekte unter dem Domänennamen b.com nicht domänenübergreifend bedienen. Beispielsweise kann der auf der Seite unter dem Domainnamen baidu.com enthaltene JavaScript-Code nicht auf den Inhalt der Seite unter dem Domainnamen google.com zugreifen.
JavaScript muss sich strikt an die Same-Origin-Richtlinie des Browsers halten, einschließlich Ajax (tatsächlich besteht Ajax auch aus JavaScript). Über das XMLHttpRequest-Objekt implementierte Ajax-Anfragen können nicht an verschiedene Domänen gesendet werden. Beispielsweise können Seiten unter abc.test.com keine Ajax-Anfragen an def.test.com senden. Durch die Anwendung der Same-Origin-Richtlinie können Benutzer sicherstellen, dass die von ihnen angezeigte Seite tatsächlich von der Domain stammt, die sie durchsuchen.
Die Same-Origin-Strategie ist in realen Anwendungen sehr wichtig. Angenommen, der Angreifer verwendet Iframe, um die Anmeldeseite der echten Bank in seine Seite einzubetten. Wenn sich der Benutzer mit dem echten Benutzernamen und Passwort anmeldet, kann die Seite den Inhalt des Benutzerformulars über JavaScript lesen, sodass die Benutzernamen- und Passwortinformationen angezeigt werden wurde durchgesickert.
Im Browser können