Verbotenes Anforderungs-Header
Ein verbotenes Anforderungs-Header ist ein HTTP-Header, bestehend aus einem Namen-Wert-Paar, das nicht programmatisch in einer Anfrage gesetzt oder modifiziert werden kann. Für Header, deren Änderungen in Antworten verboten sind, siehe verbotener Antwort-Header-Name.
Die Modifikation solcher Header ist verboten, da der Benutzeragent die volle Kontrolle über diese behält. Zum Beispiel ist der Date-Header ein verbotenes Anforderungs-Header, daher kann dieses Codebeispiel das Nachrichtenfeld Date nicht setzen:
fetch("https://httpbin.org/get", {
headers: {
Date: new Date().toUTCString(),
},
});
Mit Sec- beginnende Namen sind für die Erstellung neuer Header reserviert, die sicher vor APIs sind, die Entwicklern Kontrolle über Header gewähren, wie zum Beispiel fetch(). Verbotene Header sind eine der folgenden:
Accept-CharsetAccept-EncodingAccess-Control-Request-HeadersAccess-Control-Request-MethodConnectionContent-LengthCookieDateDNTExpectHostKeep-AliveOriginProxy-HeaderSec-HeaderRefererSet-CookieTETrailerTransfer-EncodingUpgradeViaX-HTTP-Method, aber nur, wenn es einen verbotenen Methodennamen enthält (CONNECT,TRACE,TRACK)X-HTTP-Method-Override, aber nur, wenn es einen verbotenen Methodennamen enthältX-Method-Override, aber nur, wenn es einen verbotenen Methodennamen enthält
Hinweis:
Der User-Agent-Header war früher verboten, ist es aber nicht mehr. Chrome entfernt jedoch den Header immer noch stillschweigend aus Fetch-Anfragen (siehe Chromium-Bug 571722).
Hinweis:
Während der Referer-Header in der Spezifikation als verbotener Header aufgeführt ist, behält der Benutzeragent nicht die volle Kontrolle darüber, und der Header kann programmatisch modifiziert werden. Zum Beispiel kann bei Verwendung von fetch() der Referer-Header über die referrer-Option programmatisch geändert werden.
Hinweis:
Chrome verbietet auch Access-Control-Request-Private-Network.
Siehe auch
- Verwandte Glossarbegriffe: