Documentation

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êteOpérateurValeur
Content-Security-Policycontientframe-ancestors
Strict-Transport-Securitycorrespond àmax-age=\d{8,}
X-Content-Type-Optionségal ànosniff
Referrer-Policyexiste
Servern’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.