Content Security Policy : bonnes pratiques
Une CSP stricte limite les sources de code et de contenu et bloque les injections.
Principes
- Privilégier les nonces/hachages plutôt que 'unsafe-inline'.
- Éviter les jokers, cadrer précisément les sources (schémas, hôtes, chemins).
- Isoler les contenus tiers (sous-domaines/sandbox) et interdire eval.
- Utiliser frame-ancestors au lieu de X-Frame-Options.
- Journaliser les violations (report-to / report-uri) et itérer.
Déploiement sans casse
- D’abord en Report-Only, corriger les violations, puis faire appliquer.
- Inventorier les ressources tierces et les autoriser via nonces/hachages.
- Épingler les connexions attendues avec connect-src.
TL;DR
Commencez par une CSP stricte, déployez en Report-Only
, puis appliquez. Préférez les nonces/hachages à 'unsafe-inline'
. Autorisez seulement le nécessaire.
Checklist 5 minutes
- Base ,:
default-src 'self'
(ou'none'
), puis ajouter les sources explicitement. - Utiliser des nonces pour les scripts/styles inline ,, éviter les jokers.
- Épingler les domaines tiers ,, retirer les autorisations inutiles.
- Activer
upgrade-insecure-requests
et bloquer le contenu mixte. - Déployer via
Content-Security-Policy-Report-Only
et surveiller les violations.