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
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
Referersera 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
Refererlorsque 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êteRefererpour 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'adressehttps://example.com/page.htmlenverra le référenthttps://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
Refererpour 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
Referervers 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
Referervers 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 :
<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> :
<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 :
<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 HTTPReferrer-Policydans la réponse de la feuille de styles CSS. - Pour les éléments
<style>ou attributsstyle, 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 :
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(etnetwork.http.referer.defaultPolicy.pbmodepour 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> |