Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

En-tête Referrer-Policy

Baseline Widely available *

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis ⁨janvier 2020⁩.

* Certaines parties de cette fonctionnalité peuvent bénéficier de prise en charge variables.

L'en-tête de réponse HTTP Referrer-Policy contrôle la quantité d'informations de référent (envoyées avec l'en-tête Referer) à inclure dans les requêtes. En plus de l'en-tête HTTP, vous pouvez définir cette politique en HTML.

Type d'en-tête En-tête de réponse

Syntaxe

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

Note : Le nom d'en-tête Referer est une faute d'orthographe du mot anglais « referrer ». L'en-tête Referrer-Policy n'a pas cette erreur.

Directives

no-referrer

L'en-tête Referer sera entièrement omis. Aucune information sur le référent ne sera envoyée avec les requêtes.

no-referrer-when-downgrade

Envoie l'origin, le chemin et la chaîne de requête dans l'en-tête Referer lorsque le niveau de sécurité du protocole reste le même ou s'améliore (HTTP→HTTP, HTTP→HTTPS, HTTPS→HTTPS). Il n'envoie pas l'en-tête Referer pour les requêtes vers des destinations moins sécurisées (HTTPS→HTTP, HTTPS→file).

origin

N'envoie que l'origin dans l'en-tête Referer. Par exemple, un document à l'adresse https://example.com/page.html enverra le référent https://example.com/.

origin-when-cross-origin

Envoie l'origine, le chemin et les paramètres de requête pour les requêtes same-origin et seulement l'origine du document dans les autres cas.

same-origin

Envoie l'origin, le chemin et la chaîne de requête pour les requêtes de même origine. Il n'envoie pas l'en-tête Referer pour les requêtes inter-origines.

strict-origin

N'envoie que l'origine lorsque le niveau de sécurité du protocole reste le même (HTTPS→HTTPS). Il n'envoie pas l'en-tête Referer vers des destinations moins sécurisées (HTTPS→HTTP).

strict-origin-when-cross-origin (valeur par défaut)

Envoie l'origine, le chemin et la chaîne de requête pour les requêtes de même origine. Pour les requêtes inter-origines, il n'envoie que l'origine lorsque le niveau de sécurité du protocole reste le même (HTTPS→HTTPS). Il n'envoie pas l'en-tête Referer vers des destinations moins sécurisées (HTTPS→HTTP).

Note : Il s'agit de la politique par défaut si aucune politique n'est définie ou si la valeur fournie est invalide (voir la révision de la spécification novembre 2020 (angl.)). Auparavant, la valeur par défaut était no-referrer-when-downgrade.

unsafe-url

Envoie l'origine, le chemin et les paramètres de requête pour toutes les requêtes sans tenir compte du niveau de sécurité.

Attention : Cette valeur divulgera des informations potentiellement confidentielles de la part des URL de ressources HTTPS vers des origines non sécurisées. Considérez les conséquences de ce paramétrage avant de vous en servir.

Intégration avec HTML

Vous pouvez aussi définir des règles de référent au sein d'HTML. Par exemple, vous pouvez définir la règle de référent pour le document entier avec un élément <meta> dont le name est referrer :

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

Ou le définit pour des requêtes spécifiques avec l'attribut referrerpolicy sur les éléments <a>, <area>, <img>, <iframe>, <script>, ou <link> :

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

Autrement, une relation de lien définie à noreferrer sur un élément a, area, ou link peut être défini :

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

Attention : Comme vu précédemment, la relation de lien noreferrer s'écrit sans trait d'union. Toutefois, quand la règle de référent est spécifiée pour le document entier avec un élément <meta>, il faut mettre le trait d'union : <meta name="referrer" content="no-referrer">.

Intégration avec CSS

CSS peut demander des ressources référencées dans des feuilles de styles. Ces ressources suivent une règle de référent aussi :

  • Les feuilles de styles CSS externes utilisant la règle par défaut (no-referrer-when-downgrade), moins qu'elle soit remplacée un l'en-tête HTTP Referrer-Policy dans la réponse de la feuille de styles CSS.
  • Pour les éléments <style> ou attributs style, la règle de référent du propriétaire du document est utilisée.

Exemples

no-referrer

Depuis le document Navigation vers Référent utilisé
https://example.com/page n'importe où (pas de référent)

no-referrer-when-downgrade

Depuis le document Navigation vers Référent utilisé
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 (pas de référent)
http://example.com/page n'importe où http://example.com/page

origin

Depuis le document Navigation vers Référent utilisé
https://example.com/page n'importe où https://example.com/

origin-when-cross-origin

Depuis le document Navigation vers Référent utilisé
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

Depuis le document Navigation vers Référent utilisé
https://example.com/page https://example.com/otherpage https://example.com/page
https://example.com/page https://mozilla.org (pas de référent)

strict-origin

Depuis le document Navigation vers Référent utilisé
https://example.com/page https://mozilla.org https://example.com/
https://example.com/page http://example.com (pas de référent)
http://example.com/page n'importe où http://example.com/

strict-origin-when-cross-origin

Depuis le document Navigation vers Référent utilisé
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 (pas de référent)

unsafe-url

Depuis le document Navigation vers Référent utilisé
https://example.com/page?q=123 n'importe où https://example.com/page?q=123

Définir une règle par défaut

Si vous voulez définir une règle à appliquer par défaut dans les cas où la règle voulue n'est pas supportée par les navigateurs, utilisez une liste de valeurs séparées par des virgules avec la règle voulue fournie en dernière position :

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

Ici, no-referrer ne sera utilisée que si strict-origin-when-cross-origin n'est pas supportée par le navigateur.

Note : Définir plusieurs valeurs n'est supporté que dans l'en-tête HTTP Referrer-Policy et non dans l'attribut referrerpolicy.

Préférences et réglages spécifiques aux navigateurs

Préférences de Firefox

Vous pouvez définir la politique de référent par défaut dans les préférences de Firefox. Les noms des préférences varient selon la version :

  • Firefox version 59 et suivantes : network.http.referer.defaultPolicy (et network.http.referer.defaultPolicy.pbmode pour la navigation privée)
  • Firefox versions 53 à 58 : network.http.referer.userControlPolicy

Toutes ces préférences acceptent les mêmes valeurs : 0 = no-referrer, 1 = same-origin, 2 = strict-origin-when-cross-origin, 3 = no-referrer-when-downgrade.

Spécifications

Specification
Referrer Policy
# referrer-policy-header

Compatibilité des navigateurs

Voir aussi