Content Security Policy (CSP)

Advanced Ecosystem 🟡 Mid

Définition

En-tête HTTP qui restreint les sources autorisées pour scripts, styles, images et connexions : première défense contre les XSS. La spécification CSP Level 3 reste un Working Draft du W3C (dernière version du 13 août 2026) mais ses apports clés, 'strict-dynamic' et les nonces, sont largement implémentés. Elle s'accompagne des Trusted Types (require-trusted-types-for), disponibles dans tous les navigateurs majeurs depuis février 2026.

Analogie

Une liste blanche à l'entrée d'un club VIP : seules les sources approuvées peuvent entrer et s'exécuter.

Exemple de code

// CSP « stricte » niveau 3 : nonce + strict-dynamic
Content-Security-Policy:
  default-src 'self';
  script-src 'nonce-r4nd0m' 'strict-dynamic';
  object-src 'none';
  base-uri 'none';
  require-trusted-types-for 'script';   // Trusted Types
  trusted-types app-policy;
// Le nonce change à chaque réponse ; les scripts qu'il charge
// dynamiquement héritent de la confiance (strict-dynamic).

Cas d'usage

Empêcher l'exécution de scripts malicieux injectés dans la page (XSS, injection de publicités).

Anti-pattern

'unsafe-inline' et 'unsafe-eval' dans script-src, ou une liste blanche de domaines CDN contournable : préférer nonce + 'strict-dynamic'.
#security#web

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre