Vérificateur d'en-têtes de sécurité HTTP
Notez les en-têtes de sécurité HTTP d'un site et voyez ce que chaque absence expose.
🌐 sitekits fetches the URL server-side (private/internal addresses are blocked). Only response headers are read — the body is never retrieved.
Aperçu
Les en-têtes de sécurité constituent la partie de la défense d’un site qui tient
entièrement dans la réponse, ce qui les rend faciles à vérifier et faciles à se
tromper subtilement. Un en-tête peut être présent et ne rien faire : max-age=0
désactive HSTS, une CSP contenant 'unsafe-inline' exécute quand même un
<script> injecté, et X-Frame-Options: ALLOW-FROM est ignoré par tous les
navigateurs livrés aujourd’hui.
Cet outil récupère l’URL côté serveur, ne lit que les en-têtes de la réponse et note sept points sur une échelle pondérée de 100. Les poids reflètent ce que chacun empêche réellement, et chaque note est accompagnée d’une remarque nommant l’exposition précise plutôt qu’un simple « en-tête manquant ».
Utilisation
- Collez une URL. Le schéma peut être omis ;
httpsest supposé. - Lisez la note globale et les notes par point.
- Traitez les remarques dans l’ordre. Chacune décrit ce qui est exposé, pas seulement ce qui est absent.
Ce que signifient les poids
Compter les en-têtes traite chaque manque comme équivalent. Il ne l’est pas : un
X-Frame-Options absent peut être couvert par frame-ancestors dans la CSP,
alors qu’une CSP absente n’a aucun substitut.
| Point | Poids | Raison |
|---|---|---|
Content-Security-Policy | 25 | Le seul en-tête qui empêche un script injecté de s’exécuter et d’exfiltrer |
Strict-Transport-Security | 20 | Empêche la rétrogradation en HTTP de la première requête |
| Protection contre l’encadrement | 15 | Clickjacking ; satisfaite par CSP frame-ancestors ou X-Frame-Options |
X-Content-Type-Options | 10 | Un content-type erroné réinterprété comme du script |
Referrer-Policy | 10 | La part de vos URL qui fuit vers d’autres origines |
Permissions-Policy | 10 | Caméra, micro et géolocalisation laissés implicitement ouverts |
| Divulgation de version | 10 | Une déduction, pas une protection — voir ci-dessous |
Comment les valeurs sont lues
La CSP part de 100 et perd des points pour ce qui l’affaiblit réellement.
'unsafe-inline' dans le script-src effectif coûte 45 — mais seulement en
l’absence de nonce ou d’empreinte, car les navigateurs qui les comprennent
ignorent alors entièrement 'unsafe-inline'. 'unsafe-eval' coûte 20. Un
base-uri absent coûte 15 : sans lui, un élément <base> injecté réécrit chaque
URL relative de la page, y compris les sources des scripts. Un object-src 'none'
absent coûte 10. Content-Security-Policy-Report-Only seul obtient zéro, car
rien n’est bloqué — c’est un instrument de mesure, pas une défense.
HSTS est noté d’après max-age : un an ou plus atteint 80, six mois 60, moins
que cela 35, et max-age=0 obtient 0 puisqu’il désactive HSTS.
includeSubDomains ajoute 20, et c’est cet ajout qui porte un en-tête correct à
100. Six mois est également le plancher de la liste de préchargement des
navigateurs : une valeur plus courte ne peut donc pas être préchargée, quelle que
soit l’intention.
La protection contre l’encadrement est satisfaite par CSP frame-ancestors
avec la note maximale, ou par X-Frame-Options: DENY/SAMEORIGIN à 60 — cela
fonctionne encore, mais la spécification a évolué. ALLOW-FROM obtient 0 :
Chrome ne l’a jamais implémenté et Firefox l’a supprimé en version 70, une page
qui s’y fie reste donc encadrable.
La divulgation de version est la seule déduction. Server: Apache/2.4.41 et
X-Powered-By: PHP/7.4.3 indiquent à un attaquant exactement quelles CVE
publiées essayer, et aucun des deux ne protège quoi que ce soit. Une valeur sans
version comme Server: cloudflare n’est pas pénalisée : la plupart des CDN
l’envoient toujours et vous ne pouvez pas la retirer, la noter serait donc un
point que personne ne peut corriger.
Ce que cet outil ne voit pas
Les en-têtes ne sont qu’une couche. Une note parfaite ne dit rien de votre configuration TLS, des attributs de vos cookies, de l’application effective de l’authentification, ni du fait que votre CSP autorise une origine qui héberge elle-même du contenu contrôlé par un attaquant.
Les attributs Set-Cookie en particulier ne sont pas notés, car ils sont propres
à chaque cookie et non à la réponse : un cookie de session sans HttpOnly et
Secure est un problème sérieux qu’aucune note d’en-têtes ne révélera.
La CSP est également notée sur sa syntaxe et ses mots-clés, pas sur votre liste
d’autorisation. Une politique script-src 'self' https://cdn.example.com obtient
la note maximale, et si ce CDN sert du JavaScript déposé par des utilisateurs, la
politique n’offre aucune protection. La note mesure la forme de la politique ;
c’est à vous de juger les sources.
Exemples
- Vérifier qu’un changement est bien arrivé en production — notez l’URL avant et après une modification de configuration CDN. Les en-têtes définis à l’origine sont fréquemment supprimés ou écrasés par un proxy, et c’est le moyen le plus rapide de voir la réponse telle que les navigateurs la reçoivent.
- Expliquer un constat à une équipe — les remarques énoncent le mécanisme, ce qui convainc mieux qu’un nom d’en-tête dans un tableau d’audit.
- Contrôler une cible de redirection — les en-têtes notés sont ceux de la réponse finale. Une page d’atterrissage qui redirige vers un autre hôte arrive souvent quelque part sans aucun des en-têtes qu’avait le point d’entrée.
- Avant de demander le préchargement HSTS — la soumission exige un
max-aged’au moins un an, plusincludeSubDomainsetpreload. Le préchargement est difficile à annuler : confirmez d’abord l’en-tête sur chaque sous-domaine. - Construire la politique elle-même — le générateur CSP assemble l’en-tête directive par directive, et en-têtes HTTP affiche la réponse brute complète quand vous avez besoin des valeurs telles quelles.
Remarques
Les en-têtes notés sont ceux de la réponse finale. Si l’URL redirige, la note décrit le point d’arrivée, et la chaîne est affichée pour repérer un point d’entrée dont les en-têtes diffèrent de sa destination.
Feature-Policy est accepté à la place de Permissions-Policy pour le même
point, certains serveurs émettant encore l’ancien nom. Referrer-Policy obtient
la note maximale pour no-referrer, same-origin, strict-origin et
strict-origin-when-cross-origin ; les autres valeurs obtiennent la moitié, car
elles laissent fuir plus d’URL que nécessaire vers d’autres origines.
Les en-têtes uniquement. Cet outil ne récupère, ne conserve ni ne transmet jamais le corps de la réponse, et les requêtes vers des adresses privées, de boucle locale, lien-local et réservées sont refusées avant toute connexion — y compris après une redirection. Les détails figurent dans la politique de confidentialité.