Files
ben-to/specs/features/security-headers.feature
2026-07-21 16:50:58 +02:00

33 lines
1.8 KiB
Gherkin

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