Die Same-Origin-Policy (SOP) ist das Fundament der Browsersicherheit: Sie verhindert, dass ein Skript, das von einer Webseite geladen wurde, auf Daten einer anderen Webseite zugreift. Ohne diese Regel könnte jede beliebige Seite im Hintergrund fremde Konten auslesen.

Was ist eine Origin?

Eine Origin ist das Tupel aus Schema (Protokoll), Host und Port einer URL — oft als scheme/host/port-Tupel bezeichnet. Zwei URLs haben genau dann dieselbe Origin, wenn alle drei Teile übereinstimmen:

https://www.example.com:443/seite
Schema: https
Host:   www.example.com
Port:   443

Schon eine andere Portnummer oder http statt https erzeugt eine fremde Origin. Gleiche Registrable Domain (z.B. example.com und shop.example.com) heißt noch lange nicht gleiche Origin.

Was die SOP erlaubt und was nicht

  • Blockiert: Lesender Zugriff von JavaScript einer fremden Origin auf das DOM, Cookies oder Antwortdaten (z.B. per fetch).
  • Erlaubt: Das Laden von Ressourcen wie Bildern, Stylesheets oder Skripten über Fremd-Origins — das Einbetten ist kein lesender Zugriff.
  • Ausnahme: CORS (Cross-Origin Resource Sharing) erlaubt kontrollierte Ausnahmen: Der Server entscheidet per HTTP-Header, welchen fremden Origins er Zugriff gewährt.

Zusammenspiel mit Cookies

Cookies gehören nicht zur Origin, sondern zur Domain. Ob ein Cookie bei einer Anfrage mitgesendet wird, regelt das SameSite-Attribut — die SOP allein schützt Cookies nicht vor Cross-Site-Anfragen. Sie ist die Basis, auf der XSS- und CSRF-Abwehrmechanismen aufbauen.

Praxis-Tipps

  • SOP ist keine Firewall: Sie schützt den Nutzer, nicht den Server. Der Server muss eigene Zugriffskontrollen haben.
  • Für berechtigten Datenaustausch zwischen Origins gezielt CORS konfigurieren — nicht SOP abschalten (z.B. per document.domain oder unsicheren Browser-Flags).
  • JSONP oder unsichere CORS-Freigaben (Access-Control-Allow-Origin: *) hebeln die SOP praktisch aus.

Verwandte Grundlagen: HTTP, HTTPS, Browser.