Garder en place les en-têtes qui protègent votre site
Les en-têtes de sécurité se perdent facilement. Ils sont souvent définis à un seul endroit — un proxy inverse, une règle de CDN, un middleware du framework — et quand cet endroit change et qu’ils disparaissent, rien ne casse pour personne. Le site a la même apparence et fonctionne exactement comme avant ; seule la protection contre le détournement de clic, le contenu mixte ou le cross-site scripting s’est discrètement envolée. Un scanner lancé une fois par an finit par s’en apercevoir.
Pingsured vérifie les en-têtes à chaque exécution.
Que vérifier ?
Les vérifications d’en-têtes ne lisent que les en-têtes de la réponse, pas le corps : elles peuvent donc figurer sur le même ping que votre vérification de disponibilité.
| En-tête | Opérateur | Valeur |
|---|---|---|
Content-Security-Policy | contient | frame-ancestors |
Strict-Transport-Security | correspond à | max-age=\d{8,} |
X-Content-Type-Options | égal à | nosniff |
Referrer-Policy | existe | |
Server | n’existe pas |
La ligne HSTS réussit pour un max-age de huit chiffres ou plus — au moins 10 000 000 secondes, environ quatre mois — si bien qu’un en-tête réduit à quelques minutes échoue. La vérification TLS ci-dessous juge sa durée exacte. La dernière ligne est le cas inverse : un en-tête qui ne devrait pas être là, comme une bannière de version qu’une nouvelle image de serveur a fait revenir.
Avec la vérification TLS
Une vérification TLS sur le même hôte couvre l’autre moitié une fois par jour : si la durée HSTS est suffisante selon les recommandations de Mozilla, si le port 80 redirige vers HTTPS, et si les cookies portent l’attribut Secure. Les vérifications d’en-têtes d’un ping HTTP y ajoutent les en-têtes que vous choisissez, à l’intervalle que vous choisissez.
Pourquoi surveiller les en-têtes de sécurité avec Pingsured
- À chaque exécution, pas une fois par an. Un en-tête perdu lors d’un déploiement est signalé en quelques minutes, pas au prochain test d’intrusion.
- Les en-têtes qui vous importent. Valeurs exactes, sous-chaînes, expressions régulières ou simple présence, jusqu’à 16 vérifications d’en-têtes par ping.
- Chaque emplacement séparément. Les en-têtes définis par un CDN peuvent différer d’un nœud à l’autre ; une vérification depuis plusieurs emplacements montre où l’un d’eux manque.
- Depuis quand, pas seulement si. L’historique du ping montre quand un en-tête a disparu, et depuis quel emplacement.
Limites à connaître
- Une vérification d’en-têtes juge la réponse de l’URL que vous configurez. Les pages servies par une autre application — une boutique, un centre d’aide sur son propre système — ont besoin de leur propre ping.
- Les valeurs d’en-têtes sont comparées, pas interprétées : une vérification confirme qu’une CSP contient
frame-ancestors, pas que la politique est bonne.