Closed hmeneuvrier closed 1 month ago
TODO
[x] Génération d'une CSP via un listener src/EventListener/ContentSecurityPolicyListener.php et ajout de nonces à la volée, les différents paramètres étant définis dans config/app/csp.yaml (et ils sont plus stricts)
[x] Externalisation de tous les scripts inline pouvant l'être
[x] Externalisation de tous les styles inline pouvant l'être
[x] Utilisation de nonces sur tous les styles et les scripts ne pouvant être externalisés (certains pourraient l'être en fait)
[x] Utilisation de <image à la place de <use dans les svg
[x] enlever 'unsafe-inline' de script-src --> possible, soit en externalisant tous les scripts js dans des fichiers séparés (y compris dans VueJS), soit en utilisant des nonces dans les balises scripts, soit en configurant webpacks pour s'assurer que je js est dans des fichiers séparés.
[x] Pareil pour les balises de style, enlever le unsafe-inline
[x] j'arrive à simplifier un peu les choses en ajoutant style-src-attr 'self' 'unsafe-inline'
[x] enlever 'unsafe-eval' de script-src --> voir si on peut virer les utilisations de eval() ou pas
[x] Ajouter la directive frame-ancestors --> ajouter frame-ancestors 'none'; car aucun autre site n'a besoin d'intégrer histologe en frame ou en iframe
[x] Deny by default, using default-src 'none'--> mettre default-src 'none'; au lieu de default-src 'self'; puisqu'on autorise ensuite, et faire un tour sur tout le site pour faire de la TNR
[x] Ajouter la directive base-uri--> ajouter base-uri 'self' et vérifier que tinymce marche toujours
[x] Ajouter la directive form-action --> ajouter form-action 'self'; puisque toutes les actions de formulaires sont destinées à notre propre domaine
[x] Ne pas pointer vers les domaines entiers de jsdelivr et matomo, mais vers les spécificités dont on a besoin (éventuellement aussi utiliser des nonces)
[x] Ajouter la directive media-src--> ajouter media-src 'self'; (mais vérifier si on utilise audio ou video, je n'ai pas l'impression) ??
https://observatory.mozilla.org/analyze/stop-punaises.beta.gouv.fr Content Security Policy (CSP) implemented unsafely.
This includes 'unsafe-inline' or data: inside script-src, overly broad sources such as https: inside object-src or script-src, or not restricting the sources for object-src or script-src.
cf ce qui a été fait sur Histologe : https://github.com/MTES-MCT/histologe/pull/2098 https://github.com/MTES-MCT/histologe/issues/2609 https://github.com/MTES-MCT/histologe/pull/2466 https://github.com/MTES-MCT/histologe/issues/2465