← Toutes les vérifications
SécuritéSévérité typique: Faible

Scanner de Referrer-Policy faible

Détecte une Referrer-Policy permissive qui laisse fuir l'URL complète de ton site vers des destinations externes.

Ce qu'elle vérifie

Ce scanner détecte si ton site a une Referrer-Policy permissive qui divulgue l'URL complète à des sites externes. Il identifie quand le navigateur envoie des adresses détaillées de ton site en visitant des liens ou en chargeant des ressources tierces.

Pourquoi ça compte

L'URL complète peut contenir des informations sensibles comme des identifiants de session, des tokens ou des chemins privés que tu ne voudrais pas partager avec d'autres sites. Une politique permissive envoie ces données vers des destinations externes chaque fois qu'un utilisateur quitte ton site.

Comment la corriger

Configure l'en-tête Referrer-Policy avec une valeur plus stricte comme strict-origin-when-cross-origin, qui ne partage que l'origine et non le chemin complet avec les sites externes. Ça se définit dans la configuration de ton serveur ou de ton CDN et c'est en général un changement simple et sans risque.

Comment fonctionne cette vérification

Cette vérification n'agit que si ton site envoie déjà l'en-tête Referrer-Policy ; s'il manque complètement, c'est le scanner d'en-têtes qui le signale. Scanaris lit la valeur et, si elle contient unsafe-url ou no-referrer-when-downgrade, ouvre un constat de sévérité faible avec la valeur exacte. Toute autre valeur (strict-origin-when-cross-origin, no-referrer, same-origin, origin, strict-origin) est acceptée. Autrement dit, il ne mesure pas que tu as l'en-tête, mais que celui que tu as ne laisse pas fuir l'URL complète.

Ce qu'est le referer et ce qui fuit

Chaque fois qu'un utilisateur clique sur un lien vers un autre site, ou que ta page charge une image ou un script d'un autre domaine, le navigateur envoie à la destination un en-tête Referer avec l'URL de la page d'où il vient. La politique de referer décide quelle part de cette URL est envoyée. Avec unsafe-url, l'URL complète, chemin et paramètres compris, même si la destination est en HTTP. Avec no-referrer-when-downgrade, l'URL complète vers toute destination HTTPS ; c'était le comportement par défaut des navigateurs jusqu'en 2020, d'où sa présence dans beaucoup de vieilles configurations. Ce qui fuit, ce sont des choses comme /dashboard/factures/8841, /reset-password?token=..., /recherche?q=licenciement ou l'identifiant d'un document partagé : tout ce qui se trouve dans l'URL de l'utilisateur arrive aux régies publicitaires, aux services d'analyse et à tout site externe vers lequel tu fais un lien.

Comment corriger

La valeur recommandée pour presque tout site :

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

Elle envoie l'URL complète au sein de ton propre domaine (ton outil d'analyse continue de fonctionner), seulement l'origine (https://tondomaine.com) aux autres domaines, et rien si la destination est en HTTP. C'est la valeur par défaut des navigateurs modernes, donc en la fixant explicitement tu ne fais que figer ce qu'ils font déjà. Si tu ne veux pas que quiconque sache d'où vient le visiteur, no-referrer est encore plus strict.

  • Nuxt : dans routeRules de nuxt.config, sous la règle '/**'.
  • Next.js : dans la fonction headers() de next.config.js.
  • Vercel : dans vercel.json. Netlify : dans _headers.
  • nginx : add_header Referrer-Policy "strict-origin-when-cross-origin" always;. Apache : Header always set Referrer-Policy "strict-origin-when-cross-origin".
  • Express : helmet.referrerPolicy({ policy: 'strict-origin-when-cross-origin' }).

Si un lien précis a besoin d'un autre comportement (par exemple un programme d'affiliation qui exige le referer complet), règle-le sur ce lien avec l'attribut referrerpolicy au lieu d'assouplir la politique de tout le site.

Vérifie que c'est corrigé

curl -sI https://tondomaine.com | grep -i referrer-policy

Ça doit afficher strict-origin-when-cross-origin ou no-referrer. Vérifie aussi qu'il n'y a pas de balise <meta name="referrer"> dans le HTML avec une autre valeur : la meta a priorité sur l'en-tête pour cette page.

Questions fréquentes

Vais-je perdre des données dans Google Analytics ou mon outil de statistiques ?

Non. L'analyse de ton propre site est alimentée par le script que tu inclus, pas par le referer. Ce qui change, c'est ce que voient les sites vers lesquels tu fais un lien : au lieu de la page exacte, ils verront ton domaine. Pour tes propres pages internes, le referer complet est conservé.

Mon site n'a pas d'URL avec des données sensibles.

Aujourd'hui. Un lien de réinitialisation de mot de passe, un identifiant de commande ou un paramètre de recherche apparaissent dès que le site grandit. Fixer la bonne politique coûte une ligne et n'a aucun effet secondaire.

Pourquoi no-referrer-when-downgrade était-il la valeur par défaut ?

Parce que dans les premières années du web, le referer complet était jugé utile et HTTPS était minoritaire. Chrome, Firefox et Safari ont changé la valeur par défaut en strict-origin-when-cross-origin entre 2020 et 2021, précisément à cause des fuites décrites dans ce guide. Tous les en-têtes liés sont expliqués dans les en-têtes HTTP pour les humains.

Vérifie-le sur ton site

Analyse ton site gratuitement et vois si celle-ci et 44 autres vérifications passent, avec un fix prompt pour chaque problème.

Analyser mon site gratuitement

Sur le blog

Vérifications liées