Wiki DNSprobe · Extras - En-têtes de sécurité
En-têtes de sécurité et score
DNSprobe charge votre page d’accueil, analyse les en-têtes HTTP de la réponse et calcule un score de sécurité basé sur les bonnes pratiques actuelles.
DNSprobe analyse les en-têtes HTTP renvoyés par votre site (en HTTPS et en HTTP) et calcule un score basé sur les bonnes pratiques de sécurité. Cela inclut la sécurité du transport (HSTS), l’isolation du contenu (CSP), la protection contre le clickjacking, le durcissement des cookies et plus encore.
Contrairement à un scan de vulnérabilités classique, cette section se concentre sur la manière dont votre serveur est configuré pour protéger les navigateurs qui visitent votre site. De bons en-têtes ne corrigent pas tout, mais ils réduisent fortement l’impact de nombreux scénarios d’attaque et d’erreurs courantes.
L’objectif n’est pas d’atteindre un score parfait à tout prix, mais de mettre en place une configuration raisonnable et maintenable, adaptée à votre application et à votre infrastructure. DNSprobe met en évidence ce qui est déjà en place et les quelques ajustements qui peuvent grandement améliorer votre posture de sécurité globale.
Contenu de cette page
- 1. Ce que teste la section Security Headers
- 2. Comprendre le score et la note
- 3. En-têtes clés et rôle concret
- 4. Utiliser le modèle .htaccess généré par DNSprobe
- 5. Conseils pratiques et erreurs fréquentes
- 6. Limites de l’analyse automatique des en-têtes
- 7. Tester les en-têtes HTTP de sécurité manuellement depuis votre propre terminal
1. Ce que teste la section Security Headers
La section Security Headers se connecte à votre site en HTTPS (ou en HTTP si HTTPS échoue), suit les redirections puis analyse les en-têtes de la réponse finale. Dans la plupart des cas, il s’agit du HTML de votre page d’accueil.
Pour chaque en-tête important, DNSprobe vérifie s’il est présent, si sa valeur semble sûre et s’il respecte les recommandations actuelles (par exemple HSTS, CSP, X-Content-Type-Options, Referrer-Policy, drapeaux de cookies, etc.).
L’objectif n’est pas d’obtenir un score théorique académique, mais une vue concrète de la façon dont votre site protège les visiteurs contre des risques courants comme le contenu mixte, le clickjacking, le MIME sniffing ou le vol de session.
2. Comprendre le score et la note
Le score affiché par DNSprobe va de 0 à 100 et est converti en une note de A à F. Les points sont répartis entre plusieurs en-têtes : certains comptent davantage (CSP, HSTS) tandis que d’autres sont purement informatifs.
Une note A ne signifie pas que votre application est invulnérable ; elle indique simplement que vos en-têtes HTTP sont globalement alignés avec ce qui est recommandé aujourd’hui pour un site typique.
À l’inverse, un score bas ne veut pas forcément dire que le site est catastrophique. Certaines applications assouplissent volontairement certaines politiques (par exemple pour autoriser les iframes ou des accès cross-origin plus larges). Utilisez le score comme un indicateur, toujours replacé dans le contexte de votre projet.
- A ou B : en-têtes globalement bien configurés. Vous pouvez encore affiner CSP, permissions et reporting, mais les bases sont en place.
- C ou D : plusieurs en-têtes importants manquent ou sont trop permissifs. Il vaut la peine de revoir les recommandations et de renforcer progressivement la configuration.
- F : le serveur n’envoie quasiment aucun en-tête de sécurité. C’est fréquent sur des sites anciens ou des configurations par défaut, mais il est fortement recommandé d’améliorer cela avant la mise en production.
3. En-têtes clés et rôle concret
Voici un résumé des en-têtes les plus impactants analysés par DNSprobe et de ce qu’ils apportent de concret pour vos visiteurs.
| En-tête | Ce que cela protège | Configuration recommandée (exemple) |
|---|---|---|
Strict-Transport-Security |
Empêche le navigateur d’utiliser le HTTP clair sur votre site et réduit les risques d’attaque de type SSL stripping sur les réseaux publics ou non fiables. | À activer sur les sites 100 % HTTPS avec une durée max-age longue, en incluant les sous-domaines et, à terme, le préchargement. Exemple : max-age=63072000; includeSubDomains; preload. |
Content-Security-Policy |
Contrôle les origines autorisées pour charger scripts, styles, images et autres ressources. Limite l’impact des XSS, des scripts tiers malveillants et du contenu mixte. | Commencez par une politique restrictive comme default-src 'self', autorisez explicitement les CDN nécessaires et évitez 'unsafe-inline' autant que possible. Utilisez frame-ancestors de préférence à X-Frame-Options. |
X-Content-Type-Options |
Empêche le navigateur de deviner le type de contenu d’une réponse. Réduit le risque qu’un fichier soit interprété comme HTML/JS alors qu’il devrait être téléchargé comme simple donnée. | Définissez toujours X-Content-Type-Options: nosniff sur les réponses HTML, JSON et autres contenus dynamiques. |
Referrer-Policy |
Contrôle la quantité d’information envoyée dans l’en-tête Referer lorsqu’un visiteur clique sur un lien. Aide à éviter de divulguer des chemins ou paramètres sensibles à des tiers. | Pour la plupart des sites, Referrer-Policy: strict-origin-when-cross-origin offre un bon compromis entre confidentialité et statistiques. Les applications plus sensibles peuvent utiliser no-referrer. |
Permissions-Policy |
Active ou désactive l’accès à des fonctions puissantes du navigateur (caméra, micro, géolocalisation, USB, plein écran, etc.) selon l’origine. | Refusez tout par défaut et n’autorisez que ce qui est réellement nécessaire à votre site. Par exemple : Permissions-Policy: camera=(), microphone=(), geolocation=() plus quelques (self) si besoin. |
X-Frame-Options / frame-ancestors |
Empêche vos pages d’être intégrées dans des iframes sur d’autres sites, ce qui limite les attaques de type clickjacking. | Préférez une directive frame-ancestors à l’intérieur de CSP. Si vous utilisez encore X-Frame-Options, choisissez SAMEORIGIN ou DENY sauf si vous autorisez volontairement l’intégration. |
Set-Cookie
(Secure, HttpOnly, SameSite)
|
Définit le comportement des cookies de session : peuvent-ils être envoyés en HTTP, accessibles en JavaScript ou utilisés en cross-site ? Cela influe directement sur le détournement de session, la CSRF et le suivi inter-sites. | Appliquez les drapeaux de sécurité à tous les cookies sensibles : Secure (HTTPS uniquement), HttpOnly (non accessible depuis JS) et une valeur SameSite adaptée (souvent Lax pour les connexions classiques, None pour les flux cross-site en HTTPS). |
Certains en-têtes peuvent être gérés en amont par un proxy inverse, un CDN ou un serveur applicatif. Ce qui compte, c’est la combinaison finale reçue par le navigateur.
4. Utiliser le modèle .htaccess généré par DNSprobe
Sous le tableau, DNSprobe génère un modèle .htaccess « optimal » basé sur les modules Apache comme mod_headers et mod_rewrite. Il propose des valeurs réalistes pour HSTS, CSP, la protection des iframes, les cookies, CORS et plus encore.
Ce modèle sert de point de départ. Vous devez toujours le relire, adapter les directives à votre application et à votre pile (Apache, LiteSpeed, etc.) et déployer les changements progressivement, idéalement sur un environnement de préproduction.
Certaines lignes sont volontairement commentées car plus agressives (CSP stricte, réécriture automatique des cookies, reporting, etc.). Ne les activez que lorsque vous comprenez l’impact et avez vérifié que votre application continue de fonctionner correctement.
- Si vous utilisez déjà un gestionnaire de cache (LiteSpeed Cache, WP Rocket, proxy inverse, etc.), laissez l’exemple de Cache-Control HTML commenté et laissez le plugin gérer la mise en cache.
- Ajustez les listes CORS et les endpoints de reporting avec vos propres domaines avant de les activer en production.
- Après avoir déployé le modèle, relancez un rapport DNSprobe et vérifiez à la fois le score des en-têtes de sécurité et le reste du rapport (HTTPS, HSTS, contenu mixte, etc.).
Le modèle de .htaccess généré par DNSprobe est un point de départ que vous devez adapter à votre propre pile (Apache, LiteSpeed, équivalents Nginx, règles CDN, proxies inverses, etc.) avant de le déployer en production.
5. Conseils pratiques et erreurs fréquentes
Le durcissement des en-têtes HTTP se fait par étapes. Quelques réflexes permettent de garder une configuration propre dans le temps :
- Commencez par les en-têtes non bloquants (HSTS sur un site 100 % HTTPS, X-Content-Type-Options, Referrer-Policy) avant d’introduire des règles CSP ou Permissions-Policy plus strictes.
- Testez avec les outils de développement du navigateur ouverts et surveillez les ressources bloquées ou les violations CSP dans la console.
- Si vous utilisez un CDN ou un WAF, vérifiez s’il injecte ses propres en-têtes. Des directives dupliquées ou contradictoires peuvent produire des comportements surprenants.
- Appliquez les changements d’abord en préproduction ou sur un petit pourcentage de trafic, puis déployez progressivement en production une fois rassuré.
- Documentez la raison d’être de chaque en-tête afin que les administrateurs suivants sachent ce qu’ils peuvent modifier ou non.
6. Limites de l’analyse automatique des en-têtes
DNSprobe n’analyse qu’une seule URL : en général la page d’accueil du site. D’autres chemins (admin, API, téléchargements, sous-domaines historiques) peuvent utiliser des en-têtes différents et doivent être testés séparément s’ils exposent des données sensibles.
Certaines applications envoient des en-têtes dynamiques selon l’utilisateur, le pays ou l’appareil. Dans ce cas, DNSprobe reflète uniquement le comportement d’une requête anonyme depuis son propre point de présence.
Enfin, aucun scanner automatique ne peut décider à votre place quelles exceptions sont légitimes. Utilisez le rapport comme une liste de contrôle détaillée, puis appliquez votre propre analyse de risque pour décider ce qu’il faut renforcer ou assouplir.
7. Tester les en-têtes HTTP de sécurité manuellement depuis votre propre terminal
La section Security Headers de DNSprobe analyse les en-têtes de réponse HTTP renvoyés par votre site (HSTS, Content-Security-Policy, X-Frame-Options, Referrer-Policy, Permissions-Policy, etc.) et vous attribue un score. Vous pouvez examiner les mêmes en-têtes depuis un terminal en utilisant curl sur la version HTTPS de votre site.
Linux : utiliser curl pour inspecter les en-têtes de réponse
Sur la plupart des distributions Linux, curl est installé ou disponible dans les dépôts par défaut. Les commandes suivantes ne récupèrent que les en-têtes de réponse HTTP en HTTPS, afin que vous puissiez revoir tous les en-têtes de sécurité renvoyés par votre serveur :
curl -I https://example.com/
# Vue rapide de la ligne de statut et des principaux en-têtes (HSTS, CSP, X-Frame-Options, Referrer-Policy, etc.)
curl -s -D - -o /dev/null https://example.com/
macOS : utiliser curl avec les outils intégrés
macOS inclut curl dans ses outils en ligne de commande. Ouvrez Terminal et exécutez les mêmes commandes que sous Linux pour voir exactement quels en-têtes de sécurité votre site envoie en HTTPS :
curl -I https://example.com/
# Vue rapide de la ligne de statut et des principaux en-têtes (HSTS, CSP, X-Frame-Options, Referrer-Policy, etc.)
curl -s -D - -o /dev/null https://example.com/
Windows : utiliser curl depuis l’Invite de commandes ou PowerShell
Sur les versions récentes de Windows 10 et 11, curl est inclus par défaut. Depuis une fenêtre Invite de commandes ou PowerShell, vous pouvez utiliser curl comme sous Linux/macOS pour inspecter vos en-têtes de sécurité :
curl -I https://example.com/
REM Vue rapide de la ligne de statut et des principaux en-têtes (HSTS, CSP, X-Frame-Options, Referrer-Policy, etc.)
curl -s -D - -o nul https://example.com/
Important : ne testez que des hôtes et domaines que vous possédez ou que vous êtes autorisé à analyser. Des vérifications répétées et automatisées des en-têtes sur des systèmes tiers sans autorisation peuvent être considérées comme un comportement abusif par certains fournisseurs.
Besoin d’aide pour améliorer vos en-têtes de sécurité ?
Si vous n’êtes pas certain de la façon de transformer le rapport DNSprobe en configuration concrète, vous pouvez partager cette page et le modèle .htaccess avec votre hébergeur ou votre développeur.
- Envoyez-leur un rapport DNSprobe récent et précisez sur quel domaine ou environnement vous souhaitez durcir la configuration en priorité (préproduction, production, etc.).
- Demandez-leur de revoir l’exemple .htaccess généré et de l’adapter à votre pile (Apache, LiteSpeed, équivalent Nginx, règles CDN, etc.).
- Une fois les changements en place, relancez DNSprobe et comparez le nouveau score et la liste des en-têtes pour confirmer que tout est bien appliqué.