En-têtes de sécurité HTTP (Security Headers) Content-Security-Policy (CSP)

L'en-tête Content-Security-Policy (CSP) est un mécanisme de sécurité HTTP qui permet aux administrateurs de sites web de contrôler les sources de contenu autorisées à être chargées sur leurs pages web.

L'objectif principal de CSP est de réduire les risques d'attaques telles que l'injection de code malveillant (XSS), les attaques de script intersite (XSSI) et le téléchargement de contenu non autorisé (comme les images, les scripts, etc.).

Directive

CSP utilise une directive pour spécifier les sources autorisées pour différents types de contenu (scripts, images, styles, etc.). Par exemple, la directive "script-src" spécifie les sources autorisées pour les scripts exécutés sur la page.

Valeurs

Les valeurs des directives CSP peuvent être des URL, des mots-clés ou des expressions. Par exemple, une valeur pour "script-src" peut être 'self' (autoriser les scripts provenant du même domaine) ou 'https://exemple.com' (autoriser les scripts provenant de ce domaine spécifique).

Rapports de violations

CSP permet également aux administrateurs de configurer des rapports de violation. Lorsqu'une violation de la politique de sécurité se produit (par exemple, lorsqu'un script non autorisé est bloqué), le navigateur peut envoyer un rapport au serveur spécifié par l'administrateur.

Compatibilité

La compatibilité avec CSP varie selon les navigateurs. Les navigateurs qui ne prennent pas en charge CSP ignoreront simplement l'en-tête, ce qui signifie qu'il est généralement sans risque de le déployer même si tous les utilisateurs n'utilisent pas un navigateur qui le prend en charge.

Content-Security-Policy est un mécanisme puissant pour renforcer la sécurité des sites web en limitant les sources de contenu autorisées. Son utilisation peut aider à protéger contre une variété d'attaques potentielles en réduisant la surface d'attaque des applications web.

Quelles sont les risques ?

Le Content Security Policy (CSP) est un mécanisme de sécurité essentiel pour protéger les applications web contre plusieurs types d'attaques.

Voici quelques risques associés à ne pas utiliser CSP ou à le configurer de manière incorrecte :

  • Injection de scripts malveillants (XSS) : Sans CSP, les attaquants peuvent exploiter les failles XSS en injectant et en exécutant des scripts malveillants sur votre site web. CSP permet de limiter les sources autorisées pour l'exécution de scripts, réduisant ainsi considérablement le risque d'injection de scripts malveillants.
  • Inclusion de contenu non autorisé (injection de contenu) : Un autre risque est la possibilité pour les attaquants d'inclure du contenu non autorisé sur votre site web, ce qui peut être utilisé pour afficher du contenu indésirable ou malveillant. CSP peut être configuré pour restreindre les sources de contenu autorisées, aidant ainsi à prévenir l'inclusion de contenu non autorisé.
  • Clickjacking : Sans une politique de sécurité appropriée comme CSP, les attaques de clickjacking peuvent être plus faciles à exécuter. CSP peut aider à prévenir le clickjacking en permettant de restreindre les domaines autorisés à afficher votre site web dans un cadre (frame).
  • Exécution de plugins non sécurisés : Les plugins de navigateur peuvent également représenter un risque pour la sécurité. CSP peut être utilisé pour restreindre ou désactiver l'utilisation de plugins non sécurisés sur votre site web, réduisant ainsi la surface d'attaque potentielle.
  • Vol de données sensibles (CSRF) : Bien que CSP ne soit pas principalement conçu pour lutter contre les attaques CSRF (Cross-Site Request Forgery), une mauvaise configuration ou l'absence de CSP peut faciliter l'exploitation de certaines vulnérabilités CSRF en permettant à un attaquant d'injecter des scripts malveillants qui pourraient intercepter des requêtes légitimes.

Ne pas utiliser CSP ou le configurer de manière incorrecte expose votre application web à divers risques de sécurité, y compris les attaques XSS, l'inclusion de contenu non autorisé, le clickjacking et d'autres types d'attaques. Il est donc fortement recommandé de mettre en œuvre et de configurer CSP de manière adéquate pour renforcer la sécurité de votre site web.