default-src (Périmètre de repli du chargement)Liste de sources (repli W3C fetch)
Fait office de directive de repli universelle pour l'ensemble des directives de chargement de ressources (script-src, style-src, img-src, connect-src, font-src, object-src, media-src, frame-src, worker-src, manifest-src). Définir 'self' restreint les catégories non attribuées à l'origine courante, tandis que définir 'none' impose une déclaration explicite absolue pour chaque type de ressource.
Par défaut : 'self' (Repli sur l'origine uniquement)
script-src & 'strict-dynamic' (Protection contre l'exécution XSS)Liste de sources & expressions de mots-clés
Régule les origines d'exécution JavaScript afin de prévenir les attaques par injection de scripts (XSS). Dans la spécification W3C CSP Level 3, l'association d'un nonce cryptographique ou d'une empreinte de hachage avec 'strict-dynamic' ordonne aux navigateurs modernes d'accorder leur confiance aux scripts créés dynamiquement par des scripts racines autorisés, tout en ignorant les listes blanches d'hôtes héritées et 'unsafe-inline'.
Par défaut : 'self' 'strict-dynamic' 'nonce-...' (Mode strict moderne)
object-src & base-uri (Défense contre les plugins & injection de base)Liste de sources (intégrité du document)
object-src restreint les extensions obsolètes telles que Flash, Java et Silverlight ; la valeur 'none' constitue une exigence fondamentale de l'OWASP et de l'ANSSI. base-uri restreint les URL autorisées dans les balises HTML <base href>. Point critique : base-uri n'hérite PAS de default-src ; son omission expose donc le site à des attaques par injection de balise <base> détournant les URL relatives des scripts.
Par défaut : object-src 'none'; base-uri 'none'
frame-ancestors (Protection anti-clickjacking & détournement d'interface)Politique d'encadrement (en-tête de réponse HTTP uniquement)
Spécifie les contextes parents autorisés à intégrer la page au sein de balises <frame>, <iframe>, <embed> ou <applet>, remplaçant avantageusement l'en-tête obsolète X-Frame-Options. Définir 'none' interdit toute intégration externe (neutralisant le détournement de clic ou clickjacking), tandis que 'self' n'autorise l'encadrement que par la même origine. Remarque : frame-ancestors est totalement ignorée au sein des balises HTML <meta>.
Par défaut : 'none' ou 'self' (Protection anti-clickjacking)
connect-src (Périmètre API & prévention d'exfiltration)Liste d'origines URL (fetch / XHR / WebSocket)
Restreint les URL cibles pouvant être sollicitées via des interfaces de script telles que fetch(), XMLHttpRequest, WebSocket (wss://), EventSource et navigator.sendBeacon(). Cette directive est essentielle pour empêcher l'exfiltration de données lorsqu'un script tiers compromis tente de transmettre des jetons de session ou des données sensibles vers des serveurs externes non autorisés.
Par défaut : 'self' (API sur l'origine courante uniquement)
upgrade-insecure-requests & report-to (Chiffrement du transport & télémétrie)Drapeau de directive & groupe de signalement
upgrade-insecure-requests intime aux navigateurs de convertir l'ensemble des URL HTTP non chiffrées en HTTPS avant tout chargement, prévenant ainsi les alertes de contenu mixte (mixed content). report-to définit le groupe de points de terminaison de la Reporting API vers lequel les navigateurs acheminent les rapports d'infraction au format JSON structuré, modernisant et supplantant la directive dépréciée report-uri.
Par défaut : upgrade-insecure-requests (Activé)