CentralCSP
PolitiquesContent-Security-PolicyIntroduction

Valeurs

Vue générale des types de valeurs acceptés par une directive CSP, mots-clés, sources hôte, sources de schéma, nonces, hashs et report-sample.

Dernière mise à jour:

La plupart des directives de la politique de sécurité du contenu (CSP) prennent une liste d'expressions de source séparées par des espaces, les valeurs qui disent ce que la directive autorise. Une expression de source peut être un mot-clé, un hôte, un schéma, un nonce ou un hash. Cette page est l'index de ces types de valeurs et relie chacun à sa référence complète.

Pour les directives qui consomment ces valeurs, voir la vue d'ensemble des directives ; pour la façon dont une politique est livrée, voir la vue d'ensemble des headers.

Une politique compacte qui mélange un mot-clé, un nonce et une source de schéma :

Content-Security-Policy: script-src 'self' 'nonce-{RANDOM}'; img-src 'self' data:

Les types de valeurs

Type de valeurStatutCe à quoi il correspondExemple
Mot-clé✅ BonDes jetons entre apostrophes au sens fixe'self', 'none', 'strict-dynamic'
Source hôte✅ BonUn hôte, avec en option schéma, port, chemin ou wildcardcdn.example.com, *.example.com
Source de schéma✅ BonUn schéma d'URL entierhttps:, data:, blob:
Nonce✅ BonUn jeton par réponse correspondant à un attribut nonce'nonce-r4nd0m'
Hash✅ BonUne empreinte d'un script ou style inline'sha256-...'
report-sample✅ BonInclut un échantillon du contenu bloqué dans le rapport'report-sample'
report-sha256🧪 ExpérimentalCollecte report-only de hashs de script, Chromium uniquement'report-sha256'

Le statut évalue ici le type de valeur, pas chaque valeur individuelle : 'unsafe-inline' est un mot-clé et * est une source hôte, et tous deux sont dangereux. Les statuts par mot-clé se trouvent sur la page des mots-clés.

Mots-clés

Les mots-clés sont des jetons entre apostrophes au sens fixe, détaillés sur la page des mots-clés. Ceux que vous utilisez le plus :

  • 'self' correspond à l'origine de la page elle-même (même schéma, hôte et port), pas à ses sous-domaines, et n'autorise pas le code inline.
  • 'none' ne correspond à rien et s'utilise seul pour bloquer un type de ressource.
  • 'unsafe-inline' autorise les scripts et styles inline, mais il est ignoré lorsqu'un nonce ou un hash est présent dans la même directive.
  • 'strict-dynamic' propage la confiance d'un script autorisé par nonce ou hash vers les scripts qu'il charge, et fait ignorer les entrées d'hôte et de schéma. C'est la base d'une politique stricte.
  • 'trusted-types-eval' est un mot-clé plus récent qui n'autorise eval() qu'avec un TrustedScript quand les Trusted Types sont appliqués, en remplacement de 'unsafe-eval'.

Sources hôte et de schéma

Une source hôte met en allowlist un hôte, avec en option un schéma, un port, un chemin ou un wildcard *. en tête. *.example.com correspond aux sous-domaines mais pas à example.com lui-même, et un * nu ne correspond pas à data:, blob: ni filesystem:.

Une source de schéma met en allowlist un schéma entier, comme https: ou data:. Autoriser data: dans script-src ou style-src est dangereux ; ce n'est en général sûr que dans img-src ou font-src.

Nonces et hashs

Un nonce ou un hash vous permet d'autoriser un script ou un style inline précis sans ouvrir la porte à tout le code inline.

  • Un nonce est un jeton généré côté serveur, impossible à deviner, unique à chaque réponse, placé à la fois dans la politique sous la forme 'nonce-...' et sur l'attribut nonce de l'élément correspondant.
  • Un hash est une empreinte du contenu inline exact, écrite 'sha256-...', 'sha384-...' ou 'sha512-...'. Le navigateur hache l'élément et ne l'autorise que si l'empreinte correspond.

Vous pouvez calculer une empreinte pour du contenu inline avec le générateur de hash, et produire un attribut integrity pour une ressource externe avec le générateur SRI.

Valeurs de reporting

report-sample est un mot-clé que vous ajoutez à une directive pour inclure le début du contenu inline bloqué dans un champ sample du rapport de violation, ce qui rend un blocage plus facile à retracer.

À part, les mots-clés de hash report-only report-sha256, report-sha384 et report-sha512 demandent au navigateur de signaler les hashs des scripts d'une page plutôt que d'appliquer quoi que ce soit. CentralCSP utilise ce mécanisme pour construire un inventaire de scripts et un SBOM de tout ce qui s'exécute sur chaque page. Les mots-clés sont stables dans la version actuelle de Chrome et figurent dans la grammaire du brouillon d'éditeur CSP3, mais restent propres à Chromium.

Voir aussi

Sources

On this page