Sec-Fetch-Site

Baseline 2023
Newly available

Since March 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Der HTTP-Sec-Fetch-Site-Fetch-Metadaten-Anforderungs-Header gibt das Verhältnis zwischen dem Ursprungsort eines Anforderung-Initiators und dem Ursprungsort der angeforderten Ressource an.

Mit anderen Worten, dieser Header teilt einem Server mit, ob eine Anforderung für eine Ressource vom selben Ursprung, derselben Seite, einer anderen Seite stammt oder ob es sich um eine "benutzerinitiierte" Anforderung handelt. Der Server kann diese Informationen dann verwenden, um zu entscheiden, ob die Anforderung erlaubt werden sollte.

Anforderungen gleichen Ursprungs würden in der Regel standardmäßig zugelassen, aber was bei Anforderungen von anderen Ursprüngen passiert, kann weiter davon abhängen, welche Ressource angefordert wird oder welche Informationen in einem anderen Fetch-Metadaten-Anforderungs-Header enthalten sind. Standardmäßig sollten Anforderungen, die nicht akzeptiert werden, mit einem 403-Antwortcode abgelehnt werden.

Header-Typ Fetch-Metadaten-Anforderungs-Header
Verbotener Anforderungs-Header Ja (Sec--Präfix)
CORS-safelisted Anforderungs-Header Nein

Syntax

http
Sec-Fetch-Site: cross-site
Sec-Fetch-Site: same-origin
Sec-Fetch-Site: same-site
Sec-Fetch-Site: none

Direktiven

cross-site

Der Anforderungs-Initiator und der Server, auf dem die Ressource gehostet wird, haben eine unterschiedliche Seite (d.h. eine Anforderung von "potentially-evil.com" für eine Ressource bei "example.com").

same-origin

Der Anforderungs-Initiator und der Server, auf dem die Ressource gehostet wird, haben denselben Ursprung (gleiches Schema, gleicher Host und gleicher Port).

same-site

Der Anforderungs-Initiator und der Server, auf dem die Ressource gehostet wird, haben dieselbe Seite, einschließlich des Schemas.

none

Diese Anforderung ist ein benutzerinitiierter Vorgang. Zum Beispiel: Eingabe einer URL in die Adressleiste, Öffnen eines Lesezeichens oder Ziehen und Ablegen einer Datei in das Browserfenster.

Beispiele

Eine Fetch-Anforderung an https://mysite.example/foo.json, die von einer Webseite auf https://mysite.example (mit demselben Port) ausgeht, ist eine Anforderung gleichen Ursprungs. Der Browser wird den Header Sec-Fetch-Site: same-origin generieren, wie unten gezeigt, und der Server wird die Anforderung typischerweise erlauben:

http
GET /foo.json
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin

Eine Fetch-Anforderung an dieselbe URL von einer anderen Seite, zum Beispiel potentially-evil.com, veranlasst den Browser, einen anderen Header zu generieren (z. B. Sec-Fetch-Site: cross-site), den der Server akzeptieren oder ablehnen kann:

http
GET /foo.json
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: cross-site

Spezifikationen

Specification
Fetch Metadata Request Headers
# sec-fetch-site-header

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch