content-security-policy Et FireFox -> nonce et unsafe-inline incompatible sous FireFox
Bonjour,
Je cherche à intégrer le header content-security-policy sur mon site.
ça marche sous chrome mais pas sous FireFox.
Site en eZ Platform 2.5 GPL / Symfony 3.4.49 / PHP 7.2
Bundle : NelmioSecurity https://github.com/nelmio/NelmioSecurityBundle
(Mais je pense que c'est vraiment un problème d'entête HTTP. donc rien à jour avec le CMS/Framework/langage de programmation)
Je travail sur le site https://monsite.pr-144-vzmcodi-foo.eu.platform.sh (URL fictive)
Il y a une lib JS qui est appelé sur une autre site du client : mbExtension.min.js
https://infolettres.client.fr/prefer...tension.min.js
FireFox refuse de le charger.
Citation:
Content Security Policy: Les paramètres de la page ont empêché le chargement d’une ressource à inline (« script-src »).
En fait j'ai 2 fois cette erreur avec une source différente
- moz-extension:2132:49
- mbExtension.min.js:101:16
Ma conf :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| nelmio_security:
csp: # content-security-policy Header
enabled: true
report_logger_service: logger
content_types: [ ]
enforce:
level1_fallback: false
# only send directives supported by the browser, defaults to false
# this is a port of https://github.com/twitter/secureheaders/blob/83a564a235c8be1a8a3901373dbc769da32f6ed7/lib/secure_headers/headers/policy_management.rb#L97
browser_adaptive:
enabled: true # J'ai test true et false
report-uri: '%router.request_context.base_url%/nelmio/csp/report'
default-src:
- 'self'
- 'https://infolettres.client.fr'
script-src:
- 'self'
- 'https://infolettres.client.fr'
- 'https://infolettres.client.fr/preferences/assets/js/mbExtension.min.js' # nelmio/csp/report source-file: "https://infolettres.client.fr/preferences/assets/js/mbExtension.min.js"
- '*-foo.eu.platform.sh' # nelmio/csp/report source-file: "https://monsite.pr-144-vzmcodi-foo.eu.platform.sh"
- 'moz-extension' # nelmio/csp/report source-file: "moz-extension"
- 'unsafe-inline'
- 'unsafe-eval' |
Ce qui donne comme header.
Code:
content-security-policy: default-src 'self' https://infolettres.client.fr; script-src 'self' https://infolettres.client.fr https://infolettres.client.fr/preferences/assets/js/mbExtension.min.js *-n7atutj757v2a.eu.platform.sh moz-extension 'unsafe-inline' 'unsafe-eval' 'nonce-xxxxx'; report-uri /nelmio/csp/report
Dans les reports j'ai :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| {
"csp-report": {
"blocked-uri": "inline",
"column-number": 49,
"document-uri": "https://monsite.pr-144-vzmcodi-n7atutj757v2a.eu.platform.sh/?foo",
"line-number": 2132,
"original-policy": "...", # Les content-security-policy vue plus haut
"referrer": "",
"source-file": "moz-extension",
"violated-directive": "script-src"
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| {
"csp-report": {
"blocked-uri": "inline",
"column-number": 16,
"document-uri": "https://monsite.pr-144-vzmcodi-n7atutj757v2a.eu.platform.sh/?foo",
"line-number": 101,
"original-policy": "...", # Les content-security-policy vue plus haut
"referrer": "",
"source-file": "https://infolettres.client.fr/preferences/assets/js/mbExtension.min.js",
"violated-directive": "script-src"
}
} |