Sec-Fetch-Site header
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 metadata request header zeigt die Beziehung zwischen dem Ursprung des Anforderungsinitiators und dem Ursprung der angeforderten Ressource an.
Mit anderen Worten, dieser Header teilt einem Server mit, ob eine Anforderung für eine Ressource vom gleichen Ursprung, der gleichen Site, einer anderen Site oder als "Benutzerinitiierte" Anforderung stammt. Der Server kann diese Information dann verwenden, um zu entscheiden, ob die Anforderung erlaubt werden sollte.
Anforderungen des gleichen Ursprungs würden normalerweise standardmäßig erlaubt werden, aber was für Anforderungen von anderen Ursprüngen geschieht, kann weiter davon abhängen, welche Ressource angefordert wird oder welche Informationen in einem anderen fetch metadata request header stehen. Standardmäßig sollten nicht akzeptierte Anforderungen mit einem 403
Antwortcode abgelehnt werden.
Headertyp | Fetch Metadata Request Header |
---|---|
Verbotener Anforderungsheader | Ja (Sec- Präfix) |
CORS-safelisted Anforderungsheader | 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 Anforderungsinitiator und der Server, der die Ressource hostet, haben eine unterschiedliche Site (z.B. eine Anforderung von "potentially-evil.com" für eine Ressource bei "example.com").
same-origin
-
Der Anforderungsinitiator und der Server, der die Ressource hostet, haben den gleichen Ursprung (gleiches Schema, Host und Port).
same-site
-
Der Anforderungsinitiator und der Server, der die Ressource hostet, haben die gleiche Site, einschließlich des Schemas.
none
-
Diese Anforderung ist eine benutzerinitiierte Operation. Zum Beispiel: Eingeben einer URL in die Adressleiste, Öffnen eines Lesezeichens oder Drag-and-Drop einer Datei in das Browserfenster.
Beispiele
Eine Fetch-Anfrage an https://mysite.example/foo.json
, die von einer Webseite auf https://mysite.example
(mit dem gleichen Port) stammt, ist eine Anfrage des gleichen Ursprungs.
Der Browser generiert den Header Sec-Fetch-Site: same-origin
, wie unten gezeigt, und der Server wird die Anfrage normalerweise erlauben:
GET /foo.json
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Eine Fetch-Anfrage an die gleiche URL von einer anderen Site, 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
Siehe auch
Sec-Fetch-Mode
,Sec-Fetch-User
,Sec-Fetch-Dest
fetch metadata request headers- Schützen Sie Ihre Ressourcen vor Webangriffen mit Fetch Metadata (web.dev)
- Fetch Metadata Request Headers playground (secmetadata.appspot.com)