Als jemand der keine Ahnung von Web-Entwicklung (sondern nur mit richtiger Programmierung) hat, muss ich diese Frage stellen. Vielleicht klingt die naiv, aber irgendwie drängt sich mir der Verdacht auf, dass jeder (ja, jeder - also auch die Leute, die sich damit auskennen) diese Frage nur mit einem unspezifischen, händewedelnden „Naja, das ist irgendwas mit Sicherheit“ beantworten können.
Welchen Zweck hat die Same-Origin-Policy?
Und um das vorweg zu nehmen, was durch das Extended Mind nahe liegt, hier ein Zitat von der Wikipedia-Seite:
Den Hintergrund für die große Bedeutung der SOP bildet im Wesentlichen die Kombination aus zwei Tatsachen:
- Skriptsprachen im Browser haben über das Document Object Model (DOM) direkten Zugriff auf die gesamte Kommunikation zwischen Browser und Web-Server. Dies beinhaltet sowohl das Auslesen als auch die Manipulation von Daten und betrifft neben dem Empfangen auch das Senden von Daten.
- Das Vertrauensverhältnis zwischen Browser (bzw. Anwender) und verschiedenen Webseiten kann extrem unterschiedlich sein.
Daraus ergibt sich die Anforderung, dass keine Informationen aus einem Kontext (zum Beispiel der Verbindung des Browsers zu der Seite einer Bank) von einem Skript aus einem anderen Kontext zugreifbar oder manipulierbar sein darf. Um dies zu erreichen, wird beim Zugriff eines Skriptes auf ein Objekt einer Webseite die Herkunft (origin) von beiden verglichen.
Jaja, bla bla
Auch auf die Gefahr hin, dass ich gleich ganz bescheiden zurückrudern muss, rufe ich mal ganz laut
bullshit!
Die Frage, ob auf der Seite einer Bank irgendein Script läuft, dem ich vielleicht nicht vertrauen könnte, hängt nicht davon ab, wo dieses Script liegt, sondern wer dafür verantwortlich ist, dass genau dieses Script genau von dort auf genau dieser Seite geladen wird.
Das ganze wirkt für mich im Moment wie eine Hochsicherheits-Tresortür mit Zahlenschloss. Und weil es nervt, dauern die Zahl einzugeben, oder man sie auch auch mal vergessen könnte, und abends ja auch die Putzfrau in den Tresorraum muss, wird eben ein Keil unter die Tür geklemmt, damit sie immer ein Stück offen steht. Darauf übertragen bedeutet das: Jeder, der irgendwelche resourcen ~„von woanders laden will“, wird sich im Zweifelsfall genötigt sehen, irgendwelche CORS-Policies zu etablieren, damit ~„es eben doch funktioniert“, mit denen aber letztendlich das ausgehebelt wird, was damit erreicht werden sollte (falls das denn „Sicherheit“ sein sollte - irgendwie zweifle ich da dran…)
Kann mich jemand erleuchten?