Skip to content

Qu'est-ce que la Content-Security-Policy et en quoi aide-t-elle ?

Réponse courte

La Content-Security-Policy est un en-tête de réponse HTTP qui indique au navigateur quelles sources de scripts, styles, images et autres contenus sont autorisées à se charger et s'exécuter sur une page. En interdisant le script en ligne et les origines non fiables — idéalement via des nonces ou des hachages — elle sert de rempart de défense en profondeur qui neutralise les charges utiles XSS injectées, même lorsqu'une passe au travers.

La Content-Security-Policy (CSP) est une politique appliquée par le navigateur, livrée sous forme d'en-tête de réponse HTTP, qui contraint ce qu'une page est autorisée à charger et exécuter. Sa principale fonction en pratique est de réduire l'impact du XSS : même si un attaquant injecte une balise <script>, une bonne CSP fait que le navigateur refuse simplement de l'exécuter.

Comment cela fonctionne

Le serveur envoie une politique composée de directives, chacune nommant les sources autorisées :

Content-Security-Policy: default-src 'self'; script-src 'self' 'nonce-r4nd0m'; object-src 'none'; base-uri 'none'
  • default-src 'self' — par défaut, ne charger les ressources que depuis l'origine de la page elle-même.
  • script-src — contrôle d'où le script peut provenir. Surtout, cela peut interdire le script en ligne et eval, là où s'exécute la plupart des XSS.
  • object-src 'none', base-uri 'none' — ferment Flash/<object> et le détournement de la balise <base>.

Nonces et hachages battent les listes d'autorisation de domaines

Une liste d'autorisation de domaines de scripts de confiance est fragile — de nombreux CDN hébergent des bibliothèques vulnérables ou des points de terminaison JSONP qui permettent aux attaquants de la contourner. Une CSP stricte utilise plutôt un nonce par réponse (une valeur aléatoire que le serveur place sur ses propres balises légitimes <script nonce=...>) ou un hachage des scripts en ligne autorisés. Un script injecté n'a pas de nonce valide, donc le navigateur le bloque. C'est l'approche moderne recommandée.

Déployez-la en toute sécurité

Content-Security-Policy-Report-Only n'applique rien mais signale les violations vers un point de terminaison de collecte, vous permettant de trouver ce qui casserait avant d'activer la politique. Le signalement fait aussi remonter les tentatives d'attaque réelles.

Pourquoi c'est un rempart, pas le correctif

La CSP ne peut pas corriger l'injection sous-jacente — elle limite le rayon d'impact. Vous avez toujours besoin d'un encodage de sortie contextuel comme contrôle principal. La CSP est la ceinture de sécurité, pas une raison de conduire imprudemment.

Les recruteurs recherchent « limite où les scripts se chargent/s'exécutent », le nonce/hachage plutôt que les listes de domaines, la stratégie de déploiement Report-Only et la présentation de la CSP comme défense en profondeur plutôt que comme contrôle principal.

Questions de suivi probables

  • Pourquoi une CSP basée sur un nonce est-elle plus forte qu'une liste d'autorisation de domaines ?
  • Que permet de faire Content-Security-Policy-Report-Only ?
  • Pourquoi la CSP est-elle un rempart plutôt qu'un contrôle XSS principal ?

Sources

Recevez 100 questions d'entretien en cybersécurité + réponses

Laissez votre e-mail et nous vous enverrons le pack PDF gratuit et le jeu de flashcards.

Pas de spam. Désabonnez-vous à tout moment.