Hallo Henry,
Die Erklärung ist falsch.
allow-same-origin
erlaubt es dem Dokument, die Origin zu behalten. Ansonsten wäre das eingebettete Dokument in einer eigenen, unique Origin. Z.B. wen…Danke, aber so ganz hab ich es noch nicht verstanden.
OK. Ich versuchs nochmal anders. Stell dir vor du hast eine Seite auf example.com, die diesen Code enthält:
<iframe src="http://example.org/foo" sandbox></iframe>
Dieser iframe wir keinen Zugriff auf Daten der Origin example.org
haben. Keine Cookies, kein localStorage
, nichts. Wenn du dagegen den Code änderst auf diesen:
<iframe src="http://example.org/foo" sandbox="allow-same-origin"></iframe>
dann erhält die Seite auf einmal Zugriff auf die Daten der Domain, also Cookies, localStorage, etc. Ich hab das mal nachgestellt: https://static.wwwtech.de/test.html enthält das einzubettende Dokument, der nichts anderes macht als ein Datum in den localStorage
zu schreiben und wieder auszulesen. https://static.wwwtech.de/test1.html enthält zwei iframes, die die erste URL einbinden: eins mit sandbox="allow-scripts"
und eins mit sandbox="allow-scripts allow-same-origin"
. Das erste Dokument darf den localStorage
nicht auslesen und bekommt dadurch sogar eine Exception. Das zweite Dokument darf den localStorage
auslesen.
Freundliche Grüße,
Christian Kruse