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.
Want more browser support for this feature? Tell us why.
Der HTTP-Fetch-Metadata-Request-Header Sec-Fetch-Site gibt an, in welcher Beziehung die Origin des Anfragenden zur Origin der angeforderten Ressource steht.
Anders ausgedrückt teilt dieser Header einem Server mit, ob eine Ressourcenanfrage von derselben Origin, derselben Site oder einer anderen Site stammt oder ob sie durch eine Benutzeraktion ausgelöst wurde. Anhand dieser Information kann der Server entscheiden, ob die Anfrage zugelassen werden soll.
Anfragen von derselben Origin werden in der Regel standardmäßig zugelassen. Wie Anfragen von anderen Origins behandelt werden, kann zusätzlich davon abhängen, welche Ressource angefordert wird oder welche Informationen ein anderer Fetch-Metadata-Request-Header enthält. Nicht zugelassene Anfragen sollten standardmäßig mit dem Antwortstatuscode 403 abgewiesen werden.
Der Header wird nur in Anfragen an potenziell vertrauenswürdige URLs gesendet.
| Header-Typ | Fetch-Metadata-Request-Header |
|---|---|
| Verbotener Request-Header | Ja (Präfix Sec-) |
| 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 Anfragende und der Server, der die Ressource bereitstellt, gehören zu unterschiedlichen Sites (z. B. eine Anfrage von „potentially-evil.com“ nach einer Ressource auf „example.com“).
same-origin-
Der Anfragende und der Server, der die Ressource bereitstellt, haben dieselbe Origin (dasselbe Schema, denselben Host und denselben Port).
same-site-
Der Anfragende und der Server, der die Ressource bereitstellt, gehören zur selben Site, einschließlich des Schemas.
none-
Diese Anfrage wurde durch eine Benutzeraktion ausgelöst. Beispiele sind die Eingabe einer URL in die Adressleiste, das Öffnen eines Lesezeichens oder das Ziehen einer Datei in das Browserfenster.
Beispiele
Eine Fetch-Anfrage an https://mysite.example/foo.json, die von einer Webseite auf https://mysite.example ausgeht (mit demselben Port), ist eine Anfrage von derselben Origin.
Der Browser erzeugt den Header Sec-Fetch-Site: same-origin wie unten gezeigt, und der Server lässt die Anfrage normalerweise zu:
GET /foo.json
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Bei einer Fetch-Anfrage an dieselbe URL von einer anderen Site, beispielsweise potentially-evil.com, erzeugt der Browser einen anderen Header (z. B. Sec-Fetch-Site: cross-site). Der Server kann entscheiden, ob er die Anfrage zulässt oder ablehnt:
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
- Die Fetch-Metadata-Request-Header
Sec-Fetch-Mode,Sec-Fetch-UserundSec-Fetch-Dest - Schützen Sie Ihre Ressourcen mit Fetch Metadata vor Webangriffen (web.dev)
- Testumgebung für Fetch-Metadata-Request-Header (secmetadata.appspot.com)