Rapport Content Security Policy

Le web avance et cet article date de mars 2017, son contenu peut ne plus être pertinent ou d'actualité.

CSP : Content Security Policy

J’ai découvert CSP (Content Security Policy, ou en français politique de sécurité de contenus) lors de la conférence de Nicolas Hauffman à Codeur en Seine en novembre dernier. Aujourd’hui, après avoir pris le temps de me documenter et d’appréhender cette technologie, j’ai mis en place CSP sur mon propre site. Avant de bientôt la présenter à mes collèges lors d’un petit atelier.

Qu’est ce que CSP ?

CSP comme son nom l’indique est une politique de sécurité des contenus et est une “Candidate Recommendation” du W3C depuis novembre 2012. Cette politique étant à destination des navigateurs permet d’ajouter une couche de sécurité supplémentaire côté frontend contre les faille XSS.

Dans les faits cela consiste à écrire une déclaration de politique de sécurité pour le navigateur via un header http. Cela permet ainsi de réglementer les contenus par type (style, script, iframe, etc.) et par origine (domaine, sous domaines, etc.).

Cela est bien entendu une description succincte de CSP et je vous invite à découvrir la “Content Security Policy” en détail via le site officiel content-security-policy.com ou encore cet excellent article sur OpenWeb.

Mettre en place une “Content Security Policy” sur WordPress

Le moyen le plus simple et le plus accessible de mettre en place une politique de sécurité de contenus sur un site WordPress est d’utiliser le plugin WP Content Security Policy Plugin.

En effet au sein d’une interface simple, il permet de facilement utiliser les fonctionnalités de CSP et de déclarer les différentes règles avec une phrase explicative pour chaque, ainsi qu’une détection d’erreur en cas de mauvais nommage d’un mot clef CSP.

Interface WP Content Security Policy de déclaration des règles CSP

Interface WP Content Security Policy de déclaration des règles CSP

Une simple option permet de passer du mode “report only” affichant les erreurs de la politique de sécurité dans la console sans bloquer les ressources, au mode actif bloquant les contenus non autorisés. Le plugin permet aussi de logguer les violations des politiques établies et en cas d’erreur de configuration de facilement ajouter les exceptions aux règles existantes.

Il ne reste plus alors qu’à parcourir les différentes pages et vérifier dans la console les règles à ajouter pour le bon fonctionnement des contenus utilisés sur le site.

Dans quels cas ne pas utiliser CSP

Content Security Policy est une excellente technologie, un complément de sécurité qui une fois appréhendé nous semble vite indispensable. Cependant, il faut garder à l’esprit qu’il fixe des règles pour les contenus et bloque tout éléments les violant.

De ce fait il me semble difficile d’allier une politique avec un site (WordPress ou n’importe quel site dynamique) que l’on ne maintient pas soi-même. Un éditeur ou un administrateur peut être amené à installer un plugin, ajouter une iframe (un service de vidéos par exemple), une image, etc. dont l’origine n’aurait pas été anticipée et donc serait bloqué.

Publié le par Edouard dans Développement