Sec-Fetch-Site
Baseline 2023Newly 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
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:
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:
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
Sec-Fetch-Mode
,Sec-Fetch-User
,Sec-Fetch-Dest
Fetch-Metadaten-Anforderungs-Header- Schützen Sie Ihre Ressourcen vor Webangriffen mit Fetch-Metadaten (web.dev)
- Fetch Metadata Request Headers playground (secmetadata.appspot.com)