From ca9a4dd771faa16c93d0ebd057be2b6d33bbe1fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9drix?= Date: Sat, 16 May 2026 19:26:11 +0200 Subject: [PATCH] =?UTF-8?q?draft:=20En-t=C3=AAtes=20HTTP=20:=20CSP=20ou=20?= =?UTF-8?q?comment=20s=C3=A9curiser=20le=20contenu=20d'un=20site=20web?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../draft_overlay.json | 4 ++ .../draft_overlay.md | 62 +++++++++++++++++++ 2 files changed, 66 insertions(+) create mode 100644 11055b05-7c03-48f2-b4ad-e978980dba67/draft_overlay.json create mode 100644 11055b05-7c03-48f2-b4ad-e978980dba67/draft_overlay.md diff --git a/11055b05-7c03-48f2-b4ad-e978980dba67/draft_overlay.json b/11055b05-7c03-48f2-b4ad-e978980dba67/draft_overlay.json new file mode 100644 index 0000000..5c0ba3d --- /dev/null +++ b/11055b05-7c03-48f2-b4ad-e978980dba67/draft_overlay.json @@ -0,0 +1,4 @@ +{ + "title": "En-têtes HTTP : CSP ou comment sécuriser le contenu d'un site web", + "_updated_at": "2026-05-16 17:26:11" +} diff --git a/11055b05-7c03-48f2-b4ad-e978980dba67/draft_overlay.md b/11055b05-7c03-48f2-b4ad-e978980dba67/draft_overlay.md new file mode 100644 index 0000000..e807736 --- /dev/null +++ b/11055b05-7c03-48f2-b4ad-e978980dba67/draft_overlay.md @@ -0,0 +1,62 @@ +# En-têtes HTTP : CSP ou comment sécuriser le contenu d'un site web + +![](csp.png) + +La **Content Security Policy** (CSP) est un en-tête HTTP qui permet de déclarer au navigateur quelles sources de contenu sont autorisées sur une page : scripts, images, styles, iframes, etc. Bien configurée, elle constitue l'une des défenses les plus efficaces contre les attaques de type **cross-site scripting (XSS)** et l'injection de ressources tierces non désirées. + +## Comment l'activer + +Deux méthodes principales permettent de déclarer une CSP. + +**1. Via la configuration du serveur** (recommandé). Sur Apache, dans un `.htaccess` ou un bloc `` : + +``` +Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; img-src 'self' https:; child-src 'none';" +``` + +**2. Via une balise `` dans le HTML**, utile lorsqu'on n'a pas la main sur le serveur : + +```html + +``` + +> Astuce : avant de passer en production, utilisez l'en-tête `Content-Security-Policy-Report-Only`. Le navigateur signalera les violations sans bloquer le contenu, ce qui permet d'ajuster les règles sans casser le site. + +## Les directives à connaître + +Une CSP se compose d'une liste de **directives**, chacune contrôlant un type de ressource : + +- `default-src` — valeur par défaut pour toutes les autres directives. +- `script-src` — sources autorisées pour le JavaScript. +- `style-src` — sources autorisées pour le CSS. +- `img-src` — sources autorisées pour les images. +- `connect-src` — destinations autorisées pour `fetch`, `XMLHttpRequest`, WebSocket. +- `frame-ancestors` — sites autorisés à embarquer la page dans une iframe (remplace `X-Frame-Options`). +- `child-src` — sources autorisées pour les iframes et workers. + +Chaque directive accepte des valeurs comme `'self'` (même origine), `'none'` (rien), une URL, ou des mots-clés comme `'unsafe-inline'` (à éviter). + +La liste complète est documentée sur [MDN : Content-Security-Policy](https://developer.mozilla.org/fr/docs/Web/HTTP/Headers/Content-Security-Policy). + +## Exemple commenté + +``` +Content-Security-Policy: default-src 'self'; script-src 'self' https://example.com; img-src 'self' https://example.com; +``` + +Cette politique autorise : +- tout contenu par défaut uniquement depuis la même origine ; +- les scripts depuis l'origine du site **et** `https://example.com` ; +- les images depuis l'origine du site **et** `https://example.com`. + +Tout le reste est bloqué par le navigateur. + +## Précautions + +Une CSP trop restrictive peut casser un site en bloquant des ressources légitimes (analytics, polices, widgets tiers). Procédez par étapes : commencez en mode `Report-Only`, analysez les rapports de violation, puis durcissez progressivement la politique. + +## Ressources +- [W3C : Content Security Policy Level 3](https://www.w3.org/TR/CSP3/) +- [Mozilla : Content Security Policy](https://developer.mozilla.org/fr/docs/Web/HTTP/CSP) + +Crédit image : *Midjourney* \ No newline at end of file