En-têtes de sécurité

CSP, HSTS, X-Frame, Referrer-Policy, Permissions-Policy, COOP, CORP : notés de A+ à F.

Ce qu'évalue le test des en-têtes de sécurité

L'outil récupère votre page, suit les redirections et lit huit en-têtes de réponse HTTP qui indiquent aux navigateurs comment protéger vos visiteurs : Content-Security-Policy, Strict-Transport-Security, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, Cross-Origin-Opener-Policy et Cross-Origin-Resource-Policy.

Chaque en-tête rapporte des points selon son poids et sa configuration, et le total est affiché en part du maximum. Un site entièrement sécurisé obtient 100 et la note A+.

D'où viennent les points

Content-Security-Policy pèse le plus : 25 points, ou 15 s'il autorise encore unsafe-inline ou unsafe-eval. Strict-Transport-Security vaut 20 points avec un max-age d'au moins un an et le flag preload. X-Frame-Options et X-Content-Type-Options valent 10 points chacun, et les quatre autres 5 points chacun.

Chaque ligne du résultat affiche les points obtenus sur les points possibles, avec une note sur ce qu'il faut changer.

Questions fréquentes

Comment obtenir un A+ au test des en-têtes de sécurité ?

Envoyez les huit en-têtes avec des valeurs strictes : une CSP sans unsafe-inline ni unsafe-eval, HSTS avec max-age=31536000 et preload, X-Frame-Options DENY ou SAMEORIGIN, X-Content-Type-Options nosniff, une Referrer-Policy restrictive, une Permissions-Policy qui désactive les fonctions inutilisées, et COOP et CORP en same-origin.

Pourquoi unsafe-inline fait-il baisser la note de ma CSP ?

unsafe-inline autorise n'importe quel script en ligne, exactement ce qu'injecte une attaque XSS. Déplacez les scripts en ligne dans des fichiers ou autorisez-les par nonce ou par hash, puis retirez unsafe-inline.

Faut-il inscrire mon site sur la liste de préchargement HSTS ?

Seulement si tous les sous-domaines sont servis en HTTPS de façon définitive. Une fois préchargé, le domaine entier est refusé en HTTP par les navigateurs, et le retrait de la liste prend des mois.

Où configurer ces en-têtes ?

Dans la configuration de votre serveur web ou de votre CDN : add_header dans nginx, Header set dans Apache, le fichier ou les règles d'en-têtes de votre hébergeur ou CDN, ou un middleware dans votre application.