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 Metadata Request Header gibt die Beziehung zwischen dem Ursprung eines Anforderungsinitiators und dem Ursprung der angeforderten Ressource an.
Mit anderen Worten, dieser Header teilt einem Server mit, ob eine Anfrage für eine Ressource vom gleichen Ursprung, derselben Seite, einer anderen Seite oder als "vom Benutzer initiiert" kommt. Der Server kann dann diese Informationen nutzen, um zu entscheiden, ob die Anfrage erlaubt werden sollte.
Anfragen vom gleichen Ursprung würden normalerweise standardmäßig zugelassen, aber was bei Anfragen von anderen Ursprüngen passiert, kann darüber hinaus davon abhängen, welche Ressource angefragt wird, oder von Informationen in einem anderen Fetch Metadata Request Header. Standardmäßig sollten nicht akzeptierte Anfragen mit einem 403
Antwortcode abgelehnt werden.
Header-Typ | Fetch Metadata Request Header |
---|---|
Verbotener Header-Name | Ja (Sec- Präfix) |
CORS-safelisted Request 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 Anforderungsinitiator und der Server, der die Ressource hostet, haben unterschiedliche Seiten (d. h. eine Anfrage von "potenziell-bösartig.com" für eine Ressource bei "example.com").
same-origin
-
Der Anforderungsinitiator und der Server, der die Ressource hostet, haben denselben Ursprung (gleiches Schema, Host und Port).
same-site
-
Der Anforderungsinitiator und der Server, der die Ressource hostet, haben dieselbe Seite, einschließlich des Schemas.
none
-
Diese Anfrage ist eine vom Benutzer initiierte Operation. Zum Beispiel: Eingabe 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 demselben Port) stammt, ist eine Anfrage vom gleichen Ursprung.
Der Browser generiert den Sec-Fetch-Site: same-origin
-Header wie unten gezeigt, und der Server wird die Anfrage in der Regel zulassen:
GET /foo.json
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Eine Fetch-Anfrage zur selben URL von einer anderen Seite, zum Beispiel potenziell-bösartig.com
, verursacht, dass der Browser einen anderen Header generiert (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 metadata request headers- Schützen Sie Ihre Ressourcen vor Webangriffen mit Fetch Metadata (web.dev)
- Fetch Metadata Request Headers playground (secmetadata.appspot.com)