Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Referrer-Policy header

Baseline
Weitgehend verfügbar
*

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Januar 2020 browserübergreifend verfügbar.

* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.

Der HTTP Referrer-Policy Antwort-Header steuert, wie viele Referrer-Informationen (gesendet mit dem Referer-Header) mit Anfragen eingeschlossen werden sollen. Zusätzlich zum HTTP-Header können Sie diese Richtlinie in HTML festlegen.

Headertyp Antwort-Header

Syntax

http
Referrer-Policy: no-referrer
Referrer-Policy: no-referrer-when-downgrade
Referrer-Policy: origin
Referrer-Policy: origin-when-cross-origin
Referrer-Policy: same-origin
Referrer-Policy: strict-origin
Referrer-Policy: strict-origin-when-cross-origin
Referrer-Policy: unsafe-url

Hinweis: Der Header-Name Referer ist eine falsche Schreibweise des Wortes "referrer". Der Referrer-Policy-Header teilt diese Falschschreibung nicht.

Direktiven

no-referrer

Der Referer-Header wird ausgelassen: gesendete Anfragen enthalten keine Referrer-Informationen.

no-referrer-when-downgrade

Senden der Origin, Pfad und Query-String im Referer-Header, wenn die Sicherheitsstufe des Protokolls gleich bleibt oder sich verbessert (HTTP→HTTP, HTTP→HTTPS, HTTPS→HTTPS). Senden Sie den Referer-Header nicht für Anfragen an weniger sichere Ziele (HTTPS→HTTP, HTTPS→file).

origin

Es wird nur die Origin im Referer-Header gesendet. Beispielsweise sendet ein Dokument auf https://example.com/page.html den Referrer https://example.com/.

origin-when-cross-origin

Bei einer same-origin-Anfrage werden die Origin, der Pfad und der Query-String gesendet. Es wird nur die Origin für Cross-Origin-Anfragen und Anfragen an weniger sichere Ziele (HTTPS→HTTP) gesendet.

same-origin

Die Origin, der Pfad und der Query-String werden für same-origin-Anfragen gesendet. Der Referer-Header wird für Cross-Origin-Anfragen nicht gesendet.

strict-origin

Es wird nur die Origin gesendet, wenn die Sicherheitsstufe des Protokolls gleich bleibt (HTTPS→HTTPS). Senden Sie den Referer-Header nicht an weniger sichere Ziele (HTTPS→HTTP).

strict-origin-when-cross-origin (Standard)

Die Origin, der Pfad und der Query-String werden bei einer Same-Origin-Anfrage gesendet. Für Cross-Origin-Anfragen senden Sie nur die Origin, wenn die Sicherheitsstufe des Protokolls gleich bleibt (HTTPS→HTTPS). Senden Sie den Referer-Header nicht an weniger sichere Ziele (HTTPS→HTTP).

Hinweis: Dies ist die Standardrichtlinie, wenn keine Richtlinie angegeben ist oder der angegebene Wert ungültig ist (siehe Spec-Revision November 2020). Zuvor war die Standardeinstellung no-referrer-when-downgrade.

unsafe-url

Die Origin, der Pfad und der Query-String werden bei jeder Anfrage gesendet, unabhängig von der Sicherheit.

Warnung: Diese Richtlinie kann potenziell private Informationen von HTTPS-Ressourcen-URLs an unsichere Ursprünge lecken. Überlegen Sie sorgfältig die Auswirkungen dieser Einstellung.

Effekt auf den Origin-Header

Die Referrer-Policy beeinflusst auch, ob das Benutzeragent den Origin-Header mit der Origin der Anfrage oder als null setzt (sowie den Referer-Header).

Anfragen mit GET oder HEAD, oder im cors-, websocket-, oder webtransport-Modus werden nie beeinflusst: Wenn der Benutzeragent einen Origin-Header für sie überhaupt sendet, sendet er die Origin der Anfrage, unabhängig von der Referrer-Policy.

Für andere Anfragen — wie HTML-Formularübermittlungen oder fetch()-Aufrufe mit mode: "same-origin" oder "no-cors" — setzt der Benutzeragent Origin auf null, wenn die Referrer-Policy ist:

  • no-referrer.
  • no-referrer-when-downgrade, strict-origin oder strict-origin-when-cross-origin, und die Anfrage von einer https-Origin zu einer URL erfolgt, die nicht https ist.
  • same-origin, und die Anfrage ist Cross-Origin.

Jeder andere Richtlinienwert lässt den Origin-Header auf der Origin der Anfrage.

Hinweis: Da fetch() standardmäßig mode: "cors" verwendet, sendet ein Same-Origin-fetch()-POST immer seinen tatsächlichen Origin, selbst unter Referrer-Policy: no-referrer. Das oben beschriebene Verhalten mit null-Origin gilt daher hauptsächlich für navigate-Modus-Anfragen, wie HTML-Formularübermittlungen, und nicht für fetch()-Aufrufe.

Integration in HTML

Sie können auch Referrer-Richtlinien im HTML festlegen. Beispielsweise können Sie die Referrer-Richtlinie für das gesamte Dokument mit einem <meta>-Element mit einem name von referrer festlegen:

html
<meta name="referrer" content="origin" />

Sie können das referrerpolicy-Attribut bei <a>, <area>, <img>, <iframe>, <script> oder <link>-Elementen angeben, um Referrer-Richtlinien für individuelle Anfragen festzulegen:

html
<a href="http://example.com" referrerpolicy="origin">…</a>

Alternativ können Sie eine noreferrer-Linkrelation bei einem a-, area- oder link-Elementen festlegen:

html
<a href="http://example.com" rel="noreferrer">…</a>

Warnung: Wie oben gezeigt, wird die noreferrer-Linkrelation ohne Bindestrich geschrieben. Wenn Sie die Referrer-Richtlinie für das gesamte Dokument mit einem <meta>-Element festlegen, sollte sie mit einem Bindestrich geschrieben werden: <meta name="referrer" content="no-referrer">.

Integration in CSS

CSS kann Ressourcen laden, die in Stylesheets referenziert werden. Diese Ressourcen folgen ebenfalls einer Referrer-Richtlinie:

  • Externe CSS-Stylesheets verwenden die Standardrichtlinie (strict-origin-when-cross-origin), es sei denn, sie wird durch einen Referrer-Policy-HTTP-Header in der Antwort des CSS-Stylesheets überschrieben.
  • Für <style>-Elemente oder style-Attribute wird die Referrer-Richtlinie des owning Dokuments verwendet.

Beispiele

no-referrer

Vom Dokument Navigation zu Verwendeter Referrer
https://example.com/page überall (kein Referrer)

no-referrer-when-downgrade

Vom Dokument Navigation zu Verwendeter Referrer
https://example.com/page https://example.com/otherpage https://example.com/page
https://example.com/page https://mozilla.org https://example.com/page
https://example.com/page http://example.com (kein Referrer)
http://example.com/page überall http://example.com/page

origin

Vom Dokument Navigation zu Verwendeter Referrer
https://example.com/page überall https://example.com/

origin-when-cross-origin

Vom Dokument Navigation zu Verwendeter Referrer
https://example.com/page https://example.com/otherpage https://example.com/page
https://example.com/page https://mozilla.org https://example.com/
https://example.com/page http://example.com/page https://example.com/

same-origin

Vom Dokument Navigation zu Verwendeter Referrer
https://example.com/page https://example.com/otherpage https://example.com/page
https://example.com/page https://mozilla.org (kein Referrer)

strict-origin

Vom Dokument Navigation zu Verwendeter Referrer
https://example.com/page https://mozilla.org https://example.com/
https://example.com/page http://example.com (kein Referrer)
http://example.com/page überall http://example.com/

strict-origin-when-cross-origin

Vom Dokument Navigation zu Verwendeter Referrer
https://example.com/page https://example.com/otherpage https://example.com/page
https://example.com/page https://mozilla.org https://example.com/
https://example.com/page http://example.com (kein Referrer)

unsafe-url

Vom Dokument Navigation zu Verwendeter Referrer
https://example.com/page?q=123 überall https://example.com/page?q=123

Festlegen einer Ersatzrichtlinie

Wenn Sie eine Ersatzrichtlinie angeben möchten, falls die gewünschte Richtlinie nicht weit genug vom Browser unterstützt wird, verwenden Sie eine durch Komma getrennte Liste, wobei die gewünschte Richtlinie zuletzt angegeben wird:

http
Referrer-Policy: no-referrer, strict-origin-when-cross-origin

In dem obigen Szenario wird no-referrer nur verwendet, wenn der Browser die strict-origin-when-cross-origin-Richtlinie nicht unterstützt.

Hinweis: Das Spezifizieren mehrerer Werte wird nur im Referrer-Policy-HTTP-Header unterstützt und nicht im referrerpolicy-Attribut.

Browserspezifische Vorlieben/Einstellungen

Firefox-Einstellungen

Sie können die Standard-Referrer-Richtlinie in den Firefox-Einstellungen konfigurieren. Die Präferenznamen sind versionsspezifisch:

  • Firefox-Version 59 und später: network.http.referer.defaultPolicy (und network.http.referer.defaultPolicy.pbmode für private Netzwerke)
  • Firefox-Versionen 53 bis 58: network.http.referer.userControlPolicy

Alle diese Einstellungen nehmen den gleichen Satz von Werten: 0 = no-referrer, 1 = same-origin, 2 = strict-origin-when-cross-origin, 3 = no-referrer-when-downgrade.

Spezifikationen

Spezifikation
Referrer Policy
# referrer-policy-header

Browser-Kompatibilität

Siehe auch