HTTPQUERY
Français

Referrer-Policy

Utilisation

Lorsqu’un navigateur suit un lien ou charge une sous-ressource, il envoie normalement un en-tête Referer contenant l’URL de la page d’origine. L’en-tête Referrer-Policy donne aux exploitants de sites le contrôle sur la portion de l’URL partagée, voire sur le fait d’envoyer ou non l’en-tête Referer.

Les sites sensibles à la confidentialité suppriment les informations de référent afin d’éviter de divulguer à des tiers des paramètres de requête, des chemins ou des détails d’origine. La politique s’applique aux navigations, aux requêtes de sous-ressources et aux opérations de préchargement lancées depuis la page.

Une liste de politiques séparées par des virgules sert de chaîne de repli. Le navigateur retient la dernière politique de la liste qu’il prend en charge, ce qui facilite les déploiements compatibles avec les évolutions futures.

Définir la politique

Il existe trois mécanismes pour définir la politique de référent :

Les attributs au niveau de l’élément l’emportent sur la balise meta au niveau de la page, qui l’emporte elle-même sur l’en-tête HTTP. L’en-tête HTTP est la méthode la plus fiable, car la politique prend effet avant l’analyse du moindre code HTML.

no-referrer

La directive no-referrer supprime entièrement l’en-tête Referer. Aucune information d’URL n’est envoyée avec les requêtes issues de la page.

no-referrer-when-downgrade

La directive no-referrer-when-downgrade envoie l’URL complète (origine, chemin et chaîne de requête) pour les requêtes utilisant le même protocole. Lorsque la requête entraîne un abaissement du niveau de sécurité (HTTPS vers HTTP), l’en-tête Referer est omis.

origin

La directive origin n’envoie que la partie origine de l’URL (schéma, hôte et port). Le chemin et la chaîne de requête sont retirés de toutes les requêtes.

origin-when-cross-origin

La directive origin-when-cross-origin envoie l’URL complète pour les requêtes de même origine. Pour les requêtes multi-origines ou les abaissements de protocole, seule l’origine est envoyée.

same-origin

La directive same-origin envoie l’URL complète pour les requêtes de même origine et omet entièrement l’en-tête Referer pour les requêtes multi-origines.

strict-origin

La directive strict-origin n’envoie que l’origine, et uniquement lorsque le niveau de sécurité du protocole reste identique ou s’améliore (HTTPS vers HTTPS, ou HTTP vers HTTP). Un abaissement de protocole supprime l’en-tête.

strict-origin-when-cross-origin

La directive strict-origin-when-cross-origin envoie l’URL complète pour les requêtes de même origine, n’envoie que l’origine pour les requêtes multi-origines au même niveau de sécurité, et omet l’en-tête en cas d’abaissement de protocole. C’est la politique par défaut des navigateurs modernes lorsque aucune Referrer-Policy n’est définie.

unsafe-url

La directive unsafe-url envoie l’URL complète (origine, chemin et chaîne de requête) avec chaque requête, quels que soient la destination et le protocole. C’est l’option qui expose le plus d’informations, rarement appropriée en production.

Exemple

Une politique par défaut stricte n’envoyant que l’origine lors des navigations multi-origines :

Referrer-Policy: strict-origin-when-cross-origin

Une configuration axée sur la confidentialité qui supprime toutes les données de référent :

Referrer-Policy: no-referrer

Une chaîne de repli où le navigateur retient strict-origin s’il le prend en charge, et se rabat sinon sur no-referrer :

Referrer-Policy: no-referrer, strict-origin