Collez ou composez une CSP, vérifiez la politique et exportez des extraits d’en-têtes pour HTTP, Nginx ou Apache. L’analyse se fait dans le navigateur ; rien n’est envoyé.
Fonctionne localement dans votre navigateurCollez une CSP existante pour l’inspecter, ou utilisez le créateur à droite. Cet outil n’analyse que le texte saisi.
Saisissez les expressions de source sans le nom de la directive. Laissez un champ vide pour omettre cette directive.
N’utilisez HSTS que lorsque HTTPS est correctement configuré sur tous les sous-domaines concernés. Vérifiez les valeurs générées par rapport aux exigences de votre application.
Build a CSP, then generate header snippets.
Build a CSP, then generate header snippets.
Build a CSP, then generate header snippets.
Une CSP doit correspondre aux ressources réellement nécessaires à votre application. Déployez-la avec prudence, testez d’abord en mode rapport seul et évitez de copier une politique d’un site à l’autre sans revoir les scripts, les cadres, les API et les ressources tierces.
Cette page transforme une Content-Security-Policy en trois éléments exploitables : une revue directive par directive du texte saisi, une politique complète assemblée avec le générateur, et des extraits d’en-têtes prêts à coller pour Nginx ou Apache. Elle lit la politique comme du texte ; elle ne requête jamais votre site.
Tout s’exécute dans l’onglet et aucune saisie n’est envoyée à KivTools : vous pouvez donc auditer une politique qui n’est pas encore publiée.
Le texte est découpé aux points-virgules, et chaque directive est lue comme un nom suivi de sa liste de sources. Les noms de directives sont insensibles à la casse ; le reste est comparé tel qu’écrit. Deux contrôles structurels passent en premier, car le navigateur tranche lui-même et rarement comme l’auteur s’y attend : lorsqu’une directive apparaît deux fois, c’est la première valeur qui s’applique et les répétitions sont ignorées ; lorsque 'none' côtoie d’autres sources, 'none' est ignoré au lieu d’être appliqué.
L’analyse est heuristique, pas un validateur. Elle signale ce qui affaiblit le plus souvent une politique en pratique (default-src absent, 'unsafe-inline' ou 'unsafe-eval' dans script-src, source générique ou data: pour les scripts, et absence d’object-src, base-uri, frame-ancestors ou form-action), mais une politique complète peut malgré tout ne pas convenir à votre application, et une politique signalée ici peut être correcte.
Les trois sorties portent les mêmes en-têtes : la valeur Content-Security-Policy que vous avez écrite, plus les quatre en-têtes optionnels cochés. La vue HTTP affiche des lignes Nom: valeur ; la vue Nginx entoure chaque en-tête de add_header ... always; pour l’envoyer aussi sur les réponses d’erreur ; la vue Apache utilise Header always set ... . Les guillemets et barres obliques inverses de la politique sont échappés selon la syntaxe cible.
Les en-têtes optionnels sont des valeurs fixes : X-Content-Type-Options: nosniff, Referrer-Policy: strict-origin-when-cross-origin, Permissions-Policy: camera=(), geolocation=(), microphone=() et Strict-Transport-Security: max-age=63072000; includeSubDomains. Vérifiez chaque valeur par rapport à vos exigences ; en particulier, HSTS verrouille le navigateur sur HTTPS pendant le max-age envoyé : ne l’ajoutez que lorsque tous les sous-domaines concernés sont prêts.
Une CSP s’applique dans de vraies réponses, pas dans cet éditeur. Une directive qui paraît stricte ici peut casser un script de paiement, une police ou un style en ligne dont l’application a besoin, et la console du navigateur indique exactement quelle source a été bloquée. Déployez d’abord une nouvelle politique avec Content-Security-Policy-Report-Only sur un environnement de test, puis appliquez-la et continuez à suivre les rapports.
Les extraits sont des points de départ pour votre configuration serveur, pas un substitut. Qu’un en-tête parvienne au client dépend du serveur web, d’un éventuel CDN ou proxy en amont et du chemin qui sert la page ; vérifiez les en-têtes réels après le déploiement via le panneau réseau du navigateur ou un client en ligne de commande.