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-Metadaten-Anforderungs-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 Website, einer anderen Website oder als "benutzerinitiierte" Anfrage kommt. Der Server kann dann diese Informationen verwenden, um zu entscheiden, ob die Anforderung erlaubt sein sollte.
Anforderungen vom gleichen Ursprung würden normalerweise standardmäßig zugelassen werden, aber was für 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 nicht akzeptierte Anforderungen mit einem 403
Antwortcode abgelehnt werden.
Header-Typ | Fetch-Metadaten-Anforderungs-Header |
---|---|
Verbotener Anforderungs-Header | Ja (Sec- Präfix) |
CORS-sicher gelisteter 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 Anforderungsinitiator und der Server, der die Ressource hostet, haben eine unterschiedliche Website (zum Beispiel: Eine Anfrage 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 (gleiches Schema, Host und Port).
same-site
-
Der Anforderungsinitiator und der Server, der die Ressource hostet, haben dieselbe Website, einschließlich des Schemas.
none
-
Diese Anfrage ist eine vom Benutzer initiierte 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 demselben Port) stammt, ist eine Same-Origin-Anfrage. Der Browser erzeugt den Header Sec-Fetch-Site: same-origin
, wie unten gezeigt, und der Server wird üblicherweise die Anfrage zulassen:
GET /foo.json
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Eine Fetch-Anfrage an dieselbe URL von einer anderen Website, zum Beispiel potentially-evil.com
, führt dazu, 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
Siehe auch
Sec-Fetch-Mode
,Sec-Fetch-User
,Sec-Fetch-Dest
Fetch-Metadaten-Anforderungs-Header- Schützen Sie Ihre Ressourcen vor Webangriffen mit Fetch Metadata (web.dev)
- Fetch Metadata Request Headers Playground (secmetadata.appspot.com)