Feature: En-têtes de sécurité et Content-Security-Policy En tant qu'application web servie publiquement Je veux un ensemble d'en-têtes de sécurité durcis (CSP, X-Frame-Options, etc.) Afin de limiter la surface d'attaque (XSS, clickjacking, exfiltration) @int-csp-html-injection Scenario: Le HTML injecte la balise meta Content-Security-Policy Given le plugin CSP est activé en production When l'index HTML de production est généré Then il contient une balise meta http-equiv "Content-Security-Policy" And la directive "frame-ancestors" vaut "'none'" And la directive "object-src" vaut "'none'" And aucune directive n'autorise "unsafe-eval" hors dev @int-csp-matomo-origin Scenario: La CSP s'adapte à la configuration Matomo Given la variable de build "VITE_MATOMO_URL" vaut "https://analytics.example.com/" When la CSP est calculée pour la production Then la directive "script-src" autorise l'origine "https://analytics.example.com" And la directive "connect-src" autorise l'origine "https://analytics.example.com" And la directive "img-src" autorise l'origine "https://analytics.example.com" And la directive "default-src" reste limitée à "'self'" @int-csp-serve-json Scenario: dist/serve.json expose les en-têtes à servir Given le build de production est exécuté When le fichier "dist/serve.json" est écrit Then il contient une règle ciblant les pages HTML avec une "Content-Security-Policy" And il contient "X-Content-Type-Options" avec la valeur "nosniff" And il contient "X-Frame-Options" avec la valeur "DENY" And il contient "Referrer-Policy" avec la valeur "strict-origin-when-cross-origin" And il contient "Permissions-Policy" désactivant caméra, micro et géolocalisation