"Same-site" und "same-origin"

Die Begriffe „auf derselben Website“ und „gleicher Ursprung“ werden häufig zitiert, aber oft falsch verstanden. Sie werden beispielsweise im Zusammenhang mit Seitenübergängen, fetch()-Anfragen, Cookies, Pop-ups, eingebetteten Ressourcen und Iframes verwendet. Auf dieser Seite erfahren Sie, was sie sind und wie sie sich voneinander unterscheiden.

Ursprung

Ursprung
Die Struktur eines Ursprungs.

„Origin“ ist eine Kombination aus einem Schema (auch Protokoll genannt, z. B. HTTP oder HTTPS), einem Hostnamen und einem Port (falls angegeben). Bei der URL https://www.example.com:443/foo ist beispielsweise https://www.example.com:443 der Ursprung.

„Same-origin“ und „cross-origin“

Websites mit derselben Kombination aus Schema, Hostnamen und Port gelten als „gleicher Ursprung“. Alles andere gilt als „mehrere Ursprünge“.

Ursprung A Herkunft B „Same-origin“ oder „cross-origin“?
https://www.example.com:443 https://www.evil.com:443 Mehrere Ursprünge: verschiedene Domains
https://example.com:443 Mehrere Ursprünge: verschiedene Subdomains
https://login.beispiel.de:443 Mehrere Ursprünge: verschiedene Subdomains
http://www.beispiel.de:443 Ursprungsübergreifend: verschiedene Schemata
https://www.beispiel.de:80 Mehrere Ursprünge: verschiedene Ports
https://www.beispiel.de:443 Gleicher Ursprung: genaue Übereinstimmung
https://www.beispiel.de Gleicher Ursprung: implizite Portnummer (443) stimmt überein

Website

Website (TLD+1)
Die Teile einer URL, aus denen eine Website besteht.

Top-Level-Domains (TLDs) wie .com und .org sind in der Root-Zone-Datenbank aufgeführt. Im vorherigen
Beispiel ist „website“ eine Kombination aus dem Schema, der TLD und dem Teil der Domain davor (wir nennen ihn TLD+1). Bei der URL https://www.example.com:443/foo ist https://example.com die „Website“.

Öffentliche Suffixliste und eTLD

Bei Domains mit Elementen wie .co.jp oder .github.io ist die Verwendung von .jp oder .io nicht spezifisch genug, um die „Website“ zu identifizieren. Es gibt keine Möglichkeit, die Anzahl der registrierbaren Domains für eine bestimmte TLD algorithmisch zu bestimmen. Dazu enthält die öffentliche Suffixliste eine Liste öffentlicher Suffixe, die auch als effektive TLDs (eTLDs) bezeichnet werden. Die Liste der eTLDs wird unter publicsuffix.org/list verwaltet.

Um den „Website“-Teil einer Domain zu identifizieren, die eine eTLD enthält, gehen Sie wie im Beispiel mit .com vor. Nehmen wir https://www.project.github.io:443/foo als Beispiel: Das Protokoll ist https, die eTLD ist .github.io und die eTLD+1 ist project.github.io. Daher wird https://project.github.io als „Website“ für diese URL betrachtet.

Website (eTLD+1)
Die Teile einer URL mit einer eTLD.

„auf derselben Website“ und „websiteübergreifend“

Websites mit demselben Protokoll und derselben eTLD+1 werden als „dieselbe Website“ betrachtet. Websites mit einem anderen Protokoll oder einer anderen eTLD+1 sind „websiteübergreifend“.

Ursprung A Herkunft B „Auf derselben Website“ oder „Websiteübergreifend“?
https://www.example.com:443 https://www.evil.com:443 Websiteübergreifend: verschiedene Domains
https://login.beispiel.de:443 Auf derselben Website: Unterschiedliche Subdomains spielen keine Rolle
http://www.beispiel.de:443 Websiteübergreifend: verschiedene Schemata
https://www.beispiel.de:80 Auf derselben Website: Unterschiedliche Ports spielen keine Rolle
https://www.beispiel.de:443 Auf derselben Website: genaue Übereinstimmung
https://www.beispiel.de Innerhalb einer Website: Ports spielen keine Rolle

„Ohne Schema – auf derselben Website“

Same-Site ohne Schema

Die Definition von „auf derselben Website“ wurde geändert, um das URL-Schema als Teil der Website einzubeziehen und zu verhindern, dass HTTP als schwacher Kanal verwendet wird. Das ältere Konzept „gleicher Website“ ohne Schemavergleich wird jetzt als „gleicher Website ohne Schema“ bezeichnet. http://www.example.com und https://www.example.com werden beispielsweise als „ohne Protokoll“ und „auf derselben Website“ betrachtet, aber nicht als „auf derselben Website“, da nur der Teil „eTLD+1“ wichtig ist und das Protokoll nicht berücksichtigt wird.

Ursprung A Herkunft B „Ohne Schema, auf derselben Website“ oder „Websiteübergreifend“?
https://www.example.com:443 https://www.evil.com:443 Websiteübergreifend: verschiedene Domains
https://login.beispiel.de:443 Ohne Schema: „Same-Site“ – verschiedene Subdomains spielen keine Rolle
http://www.beispiel.de:443 Schemeless Same-Site: Unterschiedliche Schemes spielen keine Rolle
https://www.beispiel.de:80 Ohne Schema: unterschiedliche Ports spielen keine Rolle
https://www.beispiel.de:443 Ohne Schema, auf derselben Website: genaue Übereinstimmung
https://www.beispiel.de Ohne Schema: Ports spielen keine Rolle

Prüfen, ob eine Anfrage auf derselben Website, vom selben Ursprung oder websiteübergreifend erfolgt

Browser Support

  • Chrome: 76.
  • Edge: 79.
  • Firefox: 90.
  • Safari: 16.4.

Source

Alle modernen Browser senden Anfragen mit einem Sec-Fetch-Site-HTTP-Header. Der Header hat einen der folgenden Werte:

  • cross-site
  • same-site (bezieht sich auf richtlinienkonforme Same-Site-Angriffe)
  • same-origin
  • none

Anhand des Werts von Sec-Fetch-Site können Sie feststellen, ob die Anfrage auf derselben Website, demselben Ursprung oder websiteübergreifend erfolgt.

Sie können dem Wert des Sec-Fetch-Site-Headers mit hoher Wahrscheinlichkeit vertrauen, weil: