Die Same-Origin Policy (SOP) ist eine grundlegende Sicherheitsregel jedes modernen Browsers. Sie sorgt dafür, dass Skripte einer Webseite standardmäßig nur Ressourcen ihrer eigenen Origin lesen dürfen. Ohne diese Regel könnte jede beliebige Webseite im Hintergrund auf das angemeldete Banking-Portal, das Webmail-Konto oder das interne CRM zugreifen — denn der Browser sendet bestehende Cookies automatisch mit.

Die SOP ist damit eine der ältesten und wirksamsten Schutzmaßnahmen im Web. Sie ist Voraussetzung dafür, dass Anwendungen mit unterschiedlicher Vertrauenswürdigkeit auf demselben Browser nebeneinander laufen können.

Was eine Origin ist

Eine Origin ist das Tripel aus:

  • Schema (http, https),
  • Host (z. B. app.example.org),
  • Port (z. B. 443).

Stimmen alle drei Bestandteile überein, gehören zwei URLs zur selben Origin. Schon eine Abweichung — etwa http:// statt https://, ein anderer Port oder eine Subdomain — macht zwei URLs zu unterschiedlichen Origins. Beispiele:

URL AURL BGleich?
https://example.org/ahttps://example.org/bJa
https://example.orghttps://app.example.orgNein (Host)
https://example.orghttp://example.orgNein (Schema)
https://example.org:443https://example.org:8443Nein (Port)

Was die Policy einschränkt

Die SOP greift in mehrere Mechanismen ein:

  • Lesen von Antwortenfetch, XMLHttpRequest oder iframe.contentWindow.document können Antworten anderer Origins ohne Freigabe nicht auslesen.
  • DOM-Zugriff — eingebettete <iframe>-Inhalte einer fremden Origin sind aus dem Skript der äußeren Seite heraus nicht inspizierbar.
  • Cookie-Zugriff — Cookies sind an eine Domain gebunden und nicht für andere Origins lesbar.
  • StoragelocalStorage und sessionStorage sind pro Origin getrennt.

Wichtig: Das Senden von Anfragen an andere Origins ist erlaubt — etwa das Einbetten eines fremden Bildes, das Absenden eines klassischen Formulars oder ein fetch-Aufruf. Was die SOP verbietet, ist das Auslesen der Antwort durch das Skript. Genau diese Lücke nutzt CSRF.

Aufweichen der Policy

In bestimmten Fällen muss seitenübergreifend zugegriffen werden — etwa wenn eine Single-Page-App eine separate API-Domain anspricht. Dafür existieren kontrollierte Mechanismen:

  • CORS (Cross-Origin Resource Sharing) — der Server der Zielressource gibt explizit frei, welche Origins zugreifen dürfen.
  • postMessage — strukturierter Nachrichtenaustausch zwischen Fenstern unterschiedlicher Origins.
  • document.domain — historisches Verfahren zur Lockerung innerhalb einer gemeinsamen Domain; gilt heute als veraltet und wird in Browsern zurückgebaut.

Die Grundregel bleibt: Verboten ist alles, was nicht ausdrücklich erlaubt wurde. Die Aufweichung ist immer eine bewusste Entscheidung — und liegt beim Anbieter der Zielressource, nicht beim Aufrufer.

/ Weiter

Zurück zu IT

Zur Übersicht