Catégorie: Développement

Générateur de CSP

Idée interneUn outil manque ?

Construisez un en-tête Content-Security-Policy à partir de directives

Définissez la liste de sources de chaque directive Content-Security-Policy — default-src, script-src, style-src et bien d'autres — et obtenez la valeur d'en-tête finale ainsi qu'un tableau lisible de ce que chaque directive autorise. Le tout construit localement dans votre navigateur.

DirectiveSources
default-src'self'
script-src'self'
style-src'self' 'unsafe-inline'
img-src'self' data:
font-src'self'
connect-src'self'
frame-ancestors'none'
object-src'none'
base-uri'self'
form-action'self'
upgrade-insecure-requests
En-tête Content-Security-Policy
default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self'; connect-src 'self'; frame-ancestors 'none'; object-src 'none'; base-uri 'self'; form-action 'self'; upgrade-insecure-requests;

Tout sur cette page est traité dans votre navigateur. Rien n'est envoyé.

À quoi sert cet outil

Un en-tête Content-Security-Policy indique au navigateur quelles sources de scripts, styles, images et autres ressources une page est autorisée à charger ; c'est l'une des défenses les plus efficaces contre les attaques de type cross-site scripting. Chaque directive prend une liste de sources séparées par des espaces, telle que 'self', 'unsafe-inline', https: ou un domaine précis, et en respecter la syntaxe à la main est fastidieux. Cet outil construit l'en-tête à partir d'un champ par directive et affiche la même politique sous forme de tableau afin que vous puissiez vérifier ce que vous autorisez réellement avant de la déployer.

Mode d'emploi

  1. Définissez la liste de sources pour chaque directive que vous souhaitez restreindre.
  2. Activez upgrade-insecure-requests ou block-all-mixed-content si besoin.
  3. Vérifiez le tableau des directives, puis copiez la valeur de l'en-tête.
  4. Envoyez-la comme en-tête de réponse Content-Security-Policy, ou commencez par Content-Security-Policy-Report-Only pendant les tests.

Confidentialité

Cet outil fonctionne entièrement dans votre navigateur. Ce que vous saisissez n'est jamais envoyé, stocké ni partagé : fermer l'onglet suffit à tout effacer.

Questions fréquentes

Que signifie une directive laissée vide ?
Une directive laissée vide ici est complètement omise de l'en-tête, ce qui signifie généralement qu'elle retombe sur default-src. Définissez d'abord default-src sur une base raisonnable telle que 'self'.
Dois-je d'abord tester avec Report-Only ?
Oui — envoyer la même valeur d'en-tête sous Content-Security-Policy-Report-Only permet de voir ce que la politique aurait bloqué, via la console du navigateur ou un report-uri, sans casser la page pendant que vous l'ajustez.
La politique est-elle envoyée quelque part pour être construite ?
Non. La chaîne d'en-tête est assemblée à partir de votre saisie directement dans le navigateur.