Outils
Vérificateur d'en-têtes de sécurité
Entrez une URL et obtenez chaque en-tête de sécurité HTTP envoyé par votre site, noté sur 100 avec une liste de correctifs classés par sévérité.
Analyser une URL
Auditez les en-têtes de sécurité HTTP et les cookies d'un site, avec un score de durcissement et des correctifs priorisés.
Exemple de résultat
Ce qu'un scan d'en-têtes vous donne
Un score sur 100, les en-têtes exacts envoyés par le serveur, et un correctif attaché à chaque valeur signalée. Lancez le scanner ci-dessus pour voir les vôtres.
Les en-têtes de sécurité nécessitent attention
Score de sécurité global
Prochaines actions
Remplacer 'unsafe-inline' dans script-src par des nonces ou des hachages
Porter le max-age HSTS à au moins un an
Ajouter une Permissions-Policy désactivant les fonctionnalités inutilisées du navigateur
Ajouter Secure, HttpOnly et SameSite au cookie de session
Dans quelle mesure le site résiste aux attaques côté client.
La configuration présente des lacunes de sécurité à corriger.
Hygiène seule : coquilles, doublons, valeurs obsolètes.
Globalement bien écrit, avec un peu de nettoyage restant : une valeur obsolète, une directive redondante. Rien de tout cela ne change le niveau de protection du site.
Les valeurs signalées sont teintées selon la sévérité. Sélectionnez-en une pour voir le problème, l'impact et le correctif à appliquer.
Constats et recommandations
Problèmes et recommandations de qualité pour ces en-têtes de sécurité.
Guide
Comprendre les en-têtes de sécurité HTTP
Les en-têtes de sécurité HTTP sont des en-têtes de réponse qu'un serveur envoie pour que le navigateur applique des protections sur la page ; ils se règlent dans la configuration du serveur, du CDN ou de l'edge, pas dans le code applicatif. Ils ne coûtent rien à envoyer, et ce sont les premiers éléments que vérifient un pentest, une plateforme de notation ou un attaquant.
Pourquoi les en-têtes de sécurité comptent
Chaque en-tête ferme une classe d'attaques que le navigateur autoriserait sinon. Une Content-Security-Policy contient le cross-site scripting en contrôlant ce qui peut se charger et s'exécuter. Strict-Transport-Security empêche la rétrogradation de protocole. La protection contre le framing bloque le clickjacking, X-Content-Type-Options empêche le MIME sniffing, Referrer-Policy garde les URL complètes hors des journaux des autres, et Permissions-Policy désactive les fonctionnalités du navigateur, comme la caméra ou le micro, que vos pages n'utilisent jamais.
C'est aussi ainsi que l'extérieur vous juge. Les pentests signalent des en-têtes manquants dans presque chaque mission, et des plateformes de notation comme SecurityScorecard, Bitsight et RiskRecon les notent en continu, et ces résultats parviennent à vos clients lors des revues fournisseurs. Notre rapport State of the Web mesure combien peu de sites en production envoient un jeu complet.
Voici un exemple complet de configuration sécurisée : une réponse portant tous les en-têtes que ce vérificateur examine, aux valeurs qui obtiennent la note maximale. Copiez-la comme point de départ. Un en-tête ne se copie pas les yeux fermés, la Content-Security-Policy, car elle doit nommer ce que vos pages chargent réellement : conservez sa structure et remplacez les sources, en partant de vos constats de scan ou de présentation de la CSP dans notre documentation.
Transport, contenu et cadrage
Le socle de base. HTTPS est verrouillé, le sniffing est désactivé, les referrers sont réduits et toutes les fonctionnalités du navigateur que vos pages n'utilisent jamais sont coupées.
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
X-Content-Type-Options: nosniff
Content-Type: text/html; charset=utf-8
Referrer-Policy: strict-origin-when-cross-origin
Cache-Control: no-store
Cross-Origin-Resource-Policy: same-origin
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
Permissions-Policy: camera=(), microphone=(), geolocation=(), payment=(), usb=(), midi=(), serial=(), bluetooth=(), hid=(), display-capture=(), screen-wake-lock=(), idle-detection=(), window-management=(), local-fonts=()Reporting et application
Là où le navigateur envoie ce qu'il observe, pour qu'un script bloqué ou une requête en échec vous parvienne au lieu de mourir dans la console de quelqu'un d'autre.
Reporting-Endpoints: default="https://<Endpoint-ID>.report.centralcsp.com", csp="https://<Endpoint-ID>.report.centralcsp.com"
Report-To: {"group":"default","max_age":86400,"endpoints":[{"url":"https://<Endpoint-ID>.report.centralcsp.com"}]}
NEL: {"report_to":"default","max_age":86400,"failure_fraction":1.0}
Integrity-Policy: blocked-destinations=(script), endpoints=(default)
Document-Policy: document-write=?0; report-to=default
Connection-Allowlist: report-to=defaultLa Content Security Policy
Gardez la structure et remplacez les sources par ce que vos pages chargent réellement. Le nonce est régénéré à chaque réponse.
Content-Security-Policy: default-src 'none'; script-src 'nonce-{RANDOM_PER_RESPONSE}' 'strict-dynamic' 'report-sha256'; style-src 'self'; img-src 'self'; font-src 'self'; connect-src 'self'; form-action 'self'; frame-ancestors 'none'; base-uri 'none'; object-src 'none'; worker-src 'self'; manifest-src 'self'; require-trusted-types-for 'script'; upgrade-insecure-requests; report-to cspCookies
Uniquement sur les réponses qui en posent un. Le vérificateur lit ces trois attributs sur chaque Set-Cookie envoyé par votre site.
Set-Cookie: session=...; Path=/; Secure; HttpOnly; SameSite=LaxEn-têtes obligatoires
Chaque page devrait les envoyer. Un en-tête manquant est un constat à lui seul, et ensemble ils portent l'essentiel du score.
| En-tête | Ce contre quoi il protège |
|---|---|
| Content-Security-Policy | Le cross-site scripting, les scripts injectés et le clickjacking via frame-ancestors |
| Strict-Transport-Security | Le retour au HTTP et le vol de cookies sur le réseau |
| X-Content-Type-Options | Le MIME sniffing transformant un fichier téléversé en script |
| Content-Type | Les réponses ambiguës, quand le charset manque ou que le type ne correspond pas au corps |
| Set-Cookie attributes | Les cookies de session sans Secure, HttpOnly ou SameSite |
En-têtes recommandés
De la défense en profondeur. Chacun couvre une brèche plus étroite que l'ensemble obligatoire, et un site qui les envoie tous obtient la note maximale.
| En-tête | Ce contre quoi il protège |
|---|---|
| Referrer-Policy | La fuite d'URL complètes et de leurs paramètres vers des tiers |
| Permissions-Policy | L'accès caméra, micro, géolocalisation et paiement que vos pages n'utilisent jamais |
| Cross-Origin-Resource-Policy | L'intégration de vos ressources par d'autres sites |
| Cross-Origin-Opener-Policy | Les attaques entre fenêtres, et le prérequis à l'isolation cross-origin |
| Cross-Origin-Embedder-Policy | L'intégration de ressources qui ne l'ont jamais accepté |
| Cache-Control | Les réponses sensibles ou authentifiées mises en cache là où elles ne devraient pas l'être |
| Reporting-Endpoints | Les violations que le navigateur génère et abandonne en silence, faute de destination |
| NEL | Les échecs DNS, TLS et de connexion que votre serveur ne voit jamais |
| Integrity-Policy | Les scripts chargés sans Subresource Integrity, partout sur le site |
| Document-Policy | Les comportements de document à désactiver, comme document.write |
| Connection-Allowlist | Les sorties réseau vers des origines que vous n'avez jamais approuvées |
En-têtes hérités
Remplacés par mieux. Les envoyer n'est pas une erreur, mais c'est le remplaçant moderne que le score récompense.
| En-tête | Pourquoi il est hérité |
|---|---|
| X-Frame-Options | Le clickjacking, remplacé par frame-ancestors en CSP. À ne garder que pour de très anciens navigateurs |
| Report-To | Remplacé par Reporting-Endpoints, mais toujours requis pour livrer les rapports NEL |
En-têtes dépréciés
Retirez-les. Chacun est retiré des standards, et l'envoyer ajoute des octets à chaque réponse sans ajouter de protection.
| En-tête | Ce contre quoi il protège aujourd'hui |
|---|---|
| X-XSS-Protection | Rien. L'auditeur XSS du navigateur qu'il pilotait a été retiré, et l'activer provoquait des fuites |
| Expect-CT | Rien. La Certificate Transparency est appliquée par défaut par les navigateurs |
| Public-Key-Pins | Rien. Le pinning a été retiré des navigateurs et pouvait vous verrouiller hors de votre propre site |
| Feature-Policy | Rien. Renommé en Permissions-Policy |
Comment lire vos résultats
Chaque constat nomme l'en-tête, dit ce qui ne va pas et vous donne la valeur exacte à servir à la place. Un en-tête manquant ? Signalé. Une valeur qui affaiblit la protection ? Signalée aussi. Et comme les en-têtes vivent dans la configuration de votre serveur, CDN ou edge, la plupart des correctifs tiennent en une ligne : déployez, relancez le scan, regardez le constat disparaître.
Ce que signifie votre score
80 et au-dessus, l'ensemble d'en-têtes est solide. De 50 à 79, il demande de l'attention : les en-têtes sont globalement présents mais au moins une valeur en fait moins qu'il n'y paraît. En dessous de 50, il y a des lacunes critiques, en général une Content-Security-Policy absente ou un en-tête HSTS qui expire trop vite pour compter.
Le score est sur 100 et se divise en deux parties. Le score de sécurité pèse la protection réelle apportée par chaque valeur ; le score de qualité pèse la propreté d'écriture de l'ensemble. C'est aussi pourquoi ce chiffre peut diverger de la note en lettre, de A+ à F, que donnent d'autres scanners : une note en lettre récompense surtout la présence, si bien qu'un site qui envoie tous les en-têtes peut obtenir un A ailleurs et rester vers 60 ici parce que deux de ces en-têtes portent des valeurs qui ne protègent presque rien.
Comparaison avec securityheaders.com et le MDN HTTP Observatory
Ces deux outils sont gratuits et constituent tous deux un bon premier aperçu. La différence tient à ce qui se passe après la vérification. securityheaders.com et le MDN HTTP Observatory sont pour l'essentiel des contrôles de présence qui renvoient une note en lettre : ils vous disent qu'un en-tête manque. Ce vérificateur lit aussi la valeur : un en-tête présent mais faible devient un constat plutôt qu'une réussite, et le résultat est un score sur 100 avec chaque constat classé par sévérité, un scénario d'exploitation, la valeur exacte à déployer à la place, et un export CSV ou PDF.
C'est aussi pourquoi les chiffres divergent. Un site qui envoie tous les en-têtes avec des valeurs médiocres obtient un bon résultat sur un contrôle de présence et se situe vers 60 ici. Aucune des deux lectures n'est fausse : elles répondent à des questions différentes.
Corriger un constat SecurityScorecard, Bitsight ou RiskRecon
Deux guides pas à pas couvrent les constats que ces plateformes remontent le plus souvent : corriger les constats CSP de SecurityScorecard et corriger les constats CSP de BitSight. Pour le changement de notation de juillet 2025 en particulier, voir pourquoi BitSight note désormais la CSP.
Si une revue de risque fournisseur de SecurityScorecard, Bitsight ou RiskRecon vous a remis un constat du type "Content Security Policy (CSP) Missing", le correctif est vérifiable depuis chez vous. Ces plateformes notent ce que montrent vos réponses HTTP publiques, sans agent ni identifiant : corrigez les en-têtes à votre edge, et leur prochaine observation de votre site verra la réponse conforme.
Scannez exactement le nom d'hôte cité dans le constat, en suivant les redirections : l'apex, une redirection www et un sous-domaine peuvent tous répondre avec des en-têtes différents, ce qui explique la plupart des tickets « mais la page d'accueil a bien une CSP ». Appliquez les corrections, relancez le scan pour confirmer, puis utilisez le flux de résolution ou de rescan de la plateforme. Une réserve que nous ne cacherons pas : les modèles de notation sont propriétaires, donc une correction ferme le constat mais personne ne peut promettre un score précis.
Pour garder le constat clôturé entre deux revues, CentralCSP surveille votre politique depuis de vrais navigateurs, en continu.
Plus d'outils gratuits
Poursuivez l'audit avec les autres outils gratuits
Chaque outil est gratuit, fonctionne sans compte et note avec la même échelle de sévérité.
Scanner CSP
Récupérez la Content-Security-Policy réellement servie par une URL et notez-la face aux contournements connus, aux sources joker et aux directives manquantes.
- Constats au niveau des directives
- Lien de résultats partageable
Évaluateur CSP
Collez une politique pas encore déployée et obtenez la même notation et les mêmes constats qu'un scan en ligne, sans URL.
- Auditez avant de déployer
- Même moteur de notation
Vérificateur Reporting API
Vérifiez que le signalement des violations fonctionne vraiment : les endpoints, Reporting-Endpoints et Report-To, et quelles fonctionnalités de sécurité rapportent réellement.
- Cartographie des endpoints et fonctionnalités
- Pertes silencieuses signalées
Générateur de hash SRI
Transformez l'URL d'un script ou d'un CSS servi par un CDN en hash Subresource Integrity, avec une balise prête à coller et une vérification CORS.
- SHA-256, 384 et 512
- CORS vérifié pour vous
Générateur de hash CSP
Transformez un script ou un style inline en hash qui l'autorise sous une politique stricte, directement dans votre navigateur.
- Fonctionne entièrement côté client
- SHA-256, 384 et 512
Comparateur de sites
Situez votre score : votre site à côté de la moyenne du jeu de données et des sites les mieux configurés de l'année, contrôle par contrôle.
- Références publiées et vérifiables
- Vue radar par catégorie
FAQ
Questions fréquentes
En-têtes, scores, scanners et notations : les réponses.
Un scan montre aujourd'hui. La surveillance montre tous les jours suivants.
CentralCSP collecte les rapports Content-Security-Policy depuis les navigateurs de vos vrais visiteurs et vous alerte quand une politique casse ou qu'un script inconnu apparaît : les en-têtes que vous venez de corriger le restent. Ajoutez un en-tête, sans changer le code.
