Sec-Fetch-Site header
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit März 2023 browserübergreifend verfügbar.
Der HTTP-Sec-Fetch-Site-Fetch-Metadaten-Anforderungsheader 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 Anforderung für eine Ressource vom gleichen Ursprung, derselben Seite, einer anderen Seite stammt oder eine "vom Benutzer initiierte" Anforderung ist. Der Server kann diese Informationen dann verwenden, um zu entscheiden, ob die Anforderung erlaubt werden soll.
Anforderungen vom gleichen Ursprung 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 von Informationen in einem anderen Fetch-Metadaten-Anforderungsheader. Standardmäßig sollten nicht akzeptierte Anforderungen mit einem 403-Antwortcode abgelehnt werden.
| Header-Typ | Fetch-Metadaten-Anforderungsheader |
|---|---|
| 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 Seite (d.h. 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 denselben Ursprung (dasselbe Schema, Host und Port).
same-site-
Der Anforderungsinitiator und der Server, der die Ressource hostet, haben dieselbe Site, einschließlich des Schemas.
none-
Diese Anforderung ist ein vom Benutzer initiiertes Vorgang. Zum Beispiel: Eingabe einer URL in die Adressleiste, Öffnen eines Lesezeichens oder Drag-and-Drop 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) stammt, ist eine Same-Origin-Anforderung.
Der Browser generiert den Sec-Fetch-Site: same-origin-Header wie unten gezeigt, und der Server wird die Anforderung in der Regel zulassen:
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, beispielsweise 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
| Spezifikation |
|---|
| Fetch Metadata Request Headers> # sec-fetch-site-header> |
Browser-Kompatibilität
Siehe auch
Sec-Fetch-Mode,Sec-Fetch-User,Sec-Fetch-DestFetch-Metadaten-Anforderungsheader- Schützen Sie Ihre Ressourcen vor Webangriffen mit Fetch Metadata (web.dev)
- Fetch Metadata Request Headers playground (secmetadata.appspot.com)