MTES-MCT / dialog

Intégration de la réglementation de circulation dans les solutions numériques
https://dialog.beta.gouv.fr
GNU Affero General Public License v3.0
8 stars 0 forks source link

Ajoute la règle CSP style-src: unsafe-hashes #817

Closed florimondmanca closed 3 weeks ago

florimondmanca commented 3 weeks ago

On a des erreurs CSP depuis longtemps, qui n'ont pas d'impact très visible mais sont bien présentes, visiblement liées aux usages de style="..." dans le HTML

Content-Security-Policy : Les paramètres de la page ont empêché l’application d’un style intégré (style-src-elem) car il enfreint la directive suivante : « style-src 'self' 'unsafe-inline' 'nonce-/S4ER3lzsJ7MpvtExBuXIQ==' » content.js:78:24

Content-Security-Policy : Les paramètres de la page ont empêché l’exécution d’un script intégré (script-src-elem) car il enfreint la directive suivante : « script-src 'self' 'unsafe-inline' 'nonce-/S4ER3lzsJ7MpvtExBuXIQ==' » 2 content.js:60:437

Content-Security-Policy : Les paramètres de la page ont empêché l’application d’un style intégré (style-src-attr) car il enfreint la directive suivante : « style-src 'self' 'unsafe-inline' 'nonce-/S4ER3lzsJ7MpvtExBuXIQ==' » Source: --stack-spacing: 1rem; dialog.incubateur.net

Content-Security-Policy : Les paramètres de la page ont empêché l’application d’un style intégré (style-src-attr) car il enfreint la directive suivante : « style-src 'self' 'unsafe-inline' 'nonce-/S4ER3lzsJ7MpvtExBuXIQ==' »

codecov-commenter commented 3 weeks ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 99.10%. Comparing base (b241bc4) to head (2a71349).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #817 +/- ## ========================================= Coverage 99.10% 99.10% Complexity 1165 1165 ========================================= Files 218 218 Lines 4929 4929 ========================================= Hits 4885 4885 Misses 44 44 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

florimondmanca commented 3 weeks ago

Assez clairement les problèmes viennent de l'utilisation de style="..." utilisé principalement pour configurer des variables CSS

C'est un pattern que j'aime beaucoup car il évite de devoir écrire une classe pour chaque ajustement mineur de valeurs adapté à chaque contexte

Dans l'état actuel NelmioSecurityBundle ne supporte pas la directive style-src-attr qui permettrait d'autoriser les styles en ligne sur les éléments HTML

En tout cas cette PR n'est pas une solution. Une solution qui ne consisterait pas à réduire les exigences de CSP consisterait à ne plus utiliser ces variables donc démultiplier les variantes de classes CSS, par ex d-stack-1w, fr-x--container-20w, etc...