MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

content_security_policy

Type String
Obligatoire Non
Exemple
"content_security_policy": "default-src 'self'"

Les extensions ont une politique de sécurité de contenu qui leur est appliquée par défaut. La stratégie par défaut restreint les sources à partir de laquelle elles peuvent charger les ressources <script> et <object>, et interdit les pratiques potentiellement dangereuses telles que l'utilisation d'eval(). Voir la politique de sécurité de contenu par défaut pour en savoir plus sur ces implications.

Vous pouvez utiliser la clé "content_security_policy" pour desserrer ou resserrer la politique par défaut. Cette clé est spécifiée de la même manière que l'en-tête HTTP Content-Security-Policy. Voir l'Utilisation de la politique de sécurité de contenu pour une description générale de la syntaxe CSP.

Par exemple, vous pouvez utiliser cette clé pour :

Il existe des restrictions sur la politique que vous pouvez spécifier ici:

  • La politique doit inclure au moins les directives script-src et les object-src, et la directive script-src soit contenir le mot-clé 'self'.
  • Les sources à distance doivent utiliser https: schemes.
  • Les sources distantes ne doivent pas utiliser de caractères génériques pour tous les domaines dans la liste des suffices publics (alors "*.co.uk" et "*.blogspot.com" ne sont pas autorisés, même si "*.foo.blogspot.com" est autorisé).
  • Toutes les sources doivent spécifier un hôte.
  • Les seuls schémas permis pour les sources sont : blob:, filesystem:, moz-extension:, and https:.
  • Les seules mots-clés sont : 'none', 'self', and 'unsafe-eval'.

Exemple

Examples validés

Autoriser les scripts à distance de "https://example.com": (voir notre 1 )

"content_security_policy": "script-src 'self' https://example.com; object-src 'self'"

Autoriser des scripts à distance de n'importe quel sous-domaine de "jquery.com":

"content_security_policy": "script-src 'self' https://*.jquery.com; object-src 'self'"

Autoriser eval() et les amis :

"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self';"

Autoriser le script en ligne : "<script>alert('Hello, world.');</script>":

"content_security_policy": "script-src 'self' 'sha256-qznLcsROx4GACP2dm0UCKCzCG+HiZ1guq6ZZDob/Tng='; object-src 'self'"

Gardez le reste de la politique, mais exigez également que les images soient packagés avec l'extension:

"content_security_policy": "script-src 'self'; object-src 'self'; img-src 'self'"

Exiger que tous les types de contenu soient emballés avec l'extension :

"content_security_policy": "default-src 'self'"

Exemples non valides

Politique qui omet la directive "object-src" :

"content_security_policy": "script-src 'self' https://*.jquery.com;"

Politique qui omet le mot-clé "self" dans la directive "script-src" :

"content_security_policy": "script-src https://*.jquery.com; object-src 'self'"

Schema pour une source distante n'est pas https:

"content_security_policy": "script-src 'self' http://code.jquery.com; object-src 'self'"

Le caractère générique est utilisé avec un domaine générique

"content_security_policy": "script-src 'self' https://*.blogspot.com; object-src 'self'"

La source spécifie un schéma mais aucun hôte:

"content_security_policy": "script-src 'self' https:; object-src 'self'"

La directive inclut le mot-clé non pris en charge 'unsafe-inline':

"content_security_policy": "script-src 'self' 'unsafe-inline'; object-src 'self'"

1. Note: Les exemples valides montrent l'utilisation correcte des clés dans CSP. Toutefois, les extensions avec  'unsafe-eval', 'unsafe-inline', remote script, ou sources distantes dans leur CSP ne sont pas autorisées pour les extensions répertoriées sur addons.mozilla.org en raison de problèmes de sécurité majeurs.

 

Compatibilité du navigateur

ChromeEdgeFirefoxFirefox for AndroidOpera
Basic supportYesYes 148 248 2Yes
1. Only the default content security policy is supported: "script-src 'self'; object-src 'self';".
2. Firefox does not support 'http://127.0.0.1' or 'http://localhost' as script sources: they must be served over HTTPS.

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : hellosct1
 Dernière mise à jour par : hellosct1,