Générateur de Content Security Policy
Créez un en-tête Content-Security-Policy, sa balise meta et sa version Report-Only avec modèles, nonces et hashs SHA-256, et évaluez une politique existante.
Partir d'un modèle
Les hôtes Google sont des exemples tirés des recommandations CSP de Google pour la balise Google. Ils changent de temps en temps : vérifiez la documentation actuelle et retirez ce que vous n'utilisez pas.
Dans une balise <meta>, les navigateurs ignorent frame-ancestors, report-uri, report-to et sandbox, et le mode Report-Only n'existe pas. Placez la balise en haut du <head> : elle ne s'applique qu'au contenu qui la suit.
Analyse de cette politique
Aucune faiblesse détectée par ces vérifications.
Évaluer une politique existante
Comment construire une politique
- Choisissez un point de départ dans Partir d’un modèle : Stricte (nonce + strict-dynamic), Site statique verrouillé, Site web classique ou Classique + Google Analytics / Ads. L’éditeur s’ouvre sur le modèle « site web classique ».
- Ajustez les Directives. Chaque champ accepte des sources séparées par des espaces ; un champ vide omet la directive.
- Utilisez l’Ajout rapide pour ajouter un mot-clé à la Directive choisie :
'self','none','unsafe-inline','strict-dynamic',https:,data:… Ajouter un nonce insère un nonce aléatoire de 128 bits. - Pour autoriser un script en ligne précis sans
'unsafe-inline', collez-le (ou le HTML qui l’entoure) dans Hacher un script ou un style en ligne et cliquez sur Calculer le SHA-256 et l’ajouter. - Cochez upgrade-insecure-requests si d’anciennes URL utilisent encore
http://, et indiquez si besoin une URL de réception des rapports. - Copiez l’En-tête HTTP, l’En-tête Report-Only ou la Balise HTML . L’Analyse de cette politique se met à jour pendant la saisie.
Pour auditer une politique existante, collez-la dans Évaluer une politique existante et cliquez sur Évaluer la politique ; Charger dans l’éditeur la recopie dans les champs.
À quoi sert une Content Security Policy
Une CSP indique au navigateur depuis quelles origines la page peut charger scripts, styles, images, polices, cadres et connexions. Son rôle principal est de limiter le cross-site scripting (XSS) : même si un attaquant parvient à injecter du balisage dans votre page, une bonne politique empêche le script injecté de s’exécuter. Elle contrôle aussi qui peut intégrer votre page dans un cadre (frame-ancestors), où les formulaires peuvent envoyer leurs données (form-action) et vers quoi <base> peut pointer (base-uri).
Les directives de récupération comme img-src ou font-src se replient sur default-src quand elles sont absentes. base-uri, form-action et frame-ancestors n’ont pas de repli : c’est pourquoi l’analyse les réclame explicitement.
Nonces, hashs et strict-dynamic
Autoriser des hôtes (script-src https://cdn.exemple.com) semble sûr mais se contourne souvent : les grands domaines hébergent des points d’accès JSONP et de vieilles bibliothèques qu’un attaquant peut réutiliser. L’approche recommandée par les équipes de sécurité des navigateurs est une CSP stricte : chaque <script> légitime porte un nonce généré par le serveur à chaque réponse, ou est autorisé par son hash, et 'strict-dynamic' permet à ces scripts de confiance de charger ceux dont ils ont besoin. Dans ce cas, https: et 'unsafe-inline' ne servent que de repli pour les très vieux navigateurs ; les navigateurs récents les ignorent.
Un nonce n’est efficace que s’il change à chaque réponse et reste imprévisible. Celui qu’insère Ajouter un nonce n’est qu’un exemple : votre serveur ou votre framework doit générer le sien. Un hash porte sur les octets exacts du code en ligne : reformater le script impose de recalculer le hash.
En-tête, Report-Only et balise meta
Envoyez la politique dans un en-tête de réponse HTTP chaque fois que c’est possible. Déployez-la d’abord en Content-Security-Policy-Report-Only : les navigateurs signalent les violations (dans la console, et à votre point de réception si vous en avez un) sans rien bloquer, ce qui laisse le temps de corriger les pages avant d’appliquer la politique. Les réglages de rapport ajoutent report-uri pour les anciens navigateurs et report-to avec un en-tête Reporting-Endpoints.
La version <meta http-equiv> dépanne sur un hébergement statique, mais les navigateurs y ignorent frame-ancestors, report-uri, report-to et sandbox, et il n’existe pas de balise meta Report-Only. L’outil retire ces directives de la balise et le signale.
Questions fréquentes
'unsafe-inline' dans style-src pose-t-il problème ?
C’est moins grave que dans script-src, et très courant, car beaucoup de bibliothèques posent des styles en ligne. Du CSS injecté peut tout de même défigurer une page ou exfiltrer des données : l’analyse le classe en gravité faible.
Les hôtes Google Analytics sont-ils complets ?
Ce sont des exemples tirés des recommandations CSP de Google pour la balise Google. Google les fait évoluer et des domaines régionaux peuvent être nécessaires : vérifiez la documentation actuelle de Google et retirez ce que vous n’utilisez pas. Le petit script en ligne de gtag.js demande aussi un nonce ou un hash.
Pourquoi ma politique bloque-t-elle mes propres scripts en ligne ?
Dès que script-src est défini sans 'unsafe-inline', tous les <script> en ligne et les attributs onclick= sont bloqués. Déplacez le code dans un fichier, ou ajoutez un nonce ou un hash.
Une CSP remplace-t-elle l'échappement des données ?
Non. La CSP est une seconde ligne de défense. Continuez d’échapper les sorties et de valider les entrées ; la politique limite les dégâts quand quelque chose passe entre les mailles.
Peut-on avoir plusieurs politiques ?
Oui : si une page reçoit plusieurs en-têtes CSP, une ressource doit les respecter tous. Collez une seule politique à la fois dans l’évaluateur.
Outils similaires
- Générateur de redirections .htaccess Créez des redirections 301 et 302 pour .htaccess ou Nginx, forcez le HTTPS et le www, déménagez un domaine et repérez boucles et chaînes.
- Générateur de balises meta Générateur de balises meta gratuit : title, méta-description, URL canonique, robots et viewport, avec contrôle de longueur et HTML correctement échappé.
- Générateur de hash Calculez le hash MD5, SHA-1, SHA-256 ou SHA-512 d'un texte ou d'un fichier de toute taille et vérifiez une somme de contrôle, sans rien envoyer.
- Générateur de robots.txt Créez un fichier robots.txt valide avec des groupes d'agents, des règles Allow et Disallow, vos sitemaps et un crawl-delay, et repérez les erreurs courantes.