Comment corriger un en-tête Content-Security-Policy (CSP) manquant | Scanthra

Scanthra · 7 min de lecture · Mis à jour Mai 2026

Mai 2026
TL;DR : Un en-tête CSP (Content Security Policy) manquant est le problème détecté le plus courant dans les rapports Scanthra. Il permet à un seul script injecté d'exécuter n'importe quel code dans le navigateur de ton visiteur. Tu peux ajouter un CSP de démarrage sûr en moins de 10 minutes — sans casser ton site — en le déployant d'abord en mode report-only.

Qu'est-ce que l'en-tête Content-Security-Policy ?

Le CSP est un en-tête de réponse qui dit au navigateur exactement quelles sources de scripts, de styles, d'images et de frames il est autorisé à charger. Si quelque chose sur la page essaie de charger un script depuis un domaine qui n'est pas sur ta liste blanche, le navigateur refuse. C'est comme une liste d'invités pour le videur à l'entrée.

Sans CSP, n'importe quelle balise <script> injectée — depuis un plugin piraté, une faute de frappe dans un widget tiers, une XSS stockée dans un commentaire — s'exécute avec un accès total aux cookies, aux données de formulaire et à la session de tes visiteurs. Avec un CSP strict, la même injection est silencieusement bloquée et journalisée.

Pourquoi c'est important pour une petite entreprise

Deux exemples concrets qu'on voit chaque semaine dans les rapports Scanthra :

Le CSP est aussi explicitement recommandé par OWASP (standard de sécurité applicative), attendu par la plupart des questionnaires de cyber-assurance, et — pour les entreprises européennes — une partie sensée des « mesures techniques appropriées » requises par l'article 32 du RGPD et la directive NIS2 (directive UE sur la cybersécurité).

Le déploiement sûr : d'abord en mode report-only

La principale raison pour laquelle les petits sites évitent le CSP, c'est la peur de casser la mise en page. La solution : déploie d'abord Content-Security-Policy-Report-Only. Le navigateur vérifie la politique et signale les violations, mais ne les applique pas. Observe les logs pendant une semaine, corrige ce qui est bloqué, puis bascule vers l'en-tête d'application.

Une politique de démarrage qui fonctionne pour la plupart des sites

Content-Security-Policy-Report-Only:
  default-src 'self';
  script-src 'self' https://www.googletagmanager.com https://www.google-analytics.com;
  style-src  'self' 'unsafe-inline' https://fonts.googleapis.com;
  font-src   'self' https://fonts.gstatic.com;
  img-src    'self' data: https:;
  connect-src 'self' https://www.google-analytics.com;
  frame-ancestors 'none';
  base-uri 'self';
  form-action 'self';
  upgrade-insecure-requests

Cette politique suppose que tu sers tout depuis ton propre domaine plus Google Analytics + Google Fonts. Presque tous les sites WordPress, Shopify ou statiques rentrent dedans avec de petits ajustements. Remplace ou supprime les lignes GA/Fonts si tu ne les utilises pas.

Comment déployer sur nginx

add_header Content-Security-Policy-Report-Only "default-src 'self'; script-src 'self' https://www.googletagmanager.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: https:; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; upgrade-insecure-requests" always;

Comment déployer sur Apache

Header always set Content-Security-Policy-Report-Only "default-src 'self'; script-src 'self' https://www.googletagmanager.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: https:; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; upgrade-insecure-requests"

Comment déployer sur Cloudflare

Dans ton tableau de bord Cloudflare, va dans Règles → Règles de transformation → Modification d'en-tête de réponse HTTP. Ajoute un en-tête nommé Content-Security-Policy-Report-Only avec la politique ci-dessus comme valeur. C'est l'option la plus rapide si tu n'as pas d'accès shell à ton serveur.

Comment déployer sur WordPress

Installe un plugin d'en-têtes comme Headers Security Advanced & HSTS WP ou ajoute les en-têtes via ton panneau d'hébergement. Évite de définir le CSP dans le functions.php d'un thème — beaucoup de thèmes chargent des assets WordPress-admin ou de l'éditeur de blocs dynamiquement, ce qui casse l'expérience de l'éditeur.

Les pièges courants

Du mode report-only à l'application

Après une semaine de report-only sans nouvelles violations sur le trafic réel, renomme l'en-tête de Content-Security-Policy-Report-Only en Content-Security-Policy. La politique est maintenant appliquée. Garde le point de rapport — tu détecteras les nouvelles violations dès qu'une mise à jour de plugin introduit un script inattendu.

Comment Scanthra détecte ça

Notre module Security Headers fait un seul GET sur ta page d'accueil et lit les en-têtes de réponse. Si Content-Security-Policy est manquant, faible, ou contient unsafe-eval, tu recevras un problème détecté avec sa gravité, une description en langage clair et un correctif à copier-coller — même format que dans cet article.

Tu veux savoir si ton site est concerné ?

Scanthra effectue une vérification passive et te l'envoie par e-mail sous forme d'un rapport PDF en langage clair.

Analyser ton site gratuitement