La stratégie de sécurité du contenu (CSP) permet de sécuriser votre page Web en limitant les ressources et les scripts autorisés à charger et à exécuter. Vous pouvez activer le CSP en définissant un en-tête Content-Security-Policy
dans les réponses HTTP de votre serveur Web.
Il existe deux façons standards de configurer un CSP:
Spécifiez une liste d'autorisation de domaines pouvant injecter leurs ressources sur la page.
Spécifiez un nonce aléatoire, avec lequel les ressources de la page doivent être marquées pour être chargées. Cette approche est appelée CSP strict.
Étant donné que les domaines utilisés par la balise Google Publisher Tag (GPT) changent au fil du temps, nous n'acceptons que le CSP strict (option 2). Cette approche évite d'avoir à gérer une liste évolutive de domaines qui pourraient devenir obsolètes et endommager votre site.
Configurer le CSP avec GPT
Activez le CSP sur votre serveur Web.
Suivez la procédure décrite dans Adopter une CSP stricte pour configurer l'en-tête CSP et appliquer le nonce à chaque balise de script de votre page, y compris
gpt.js
. GPT est compatible avec les directives CSP suivantes:Content-Security-Policy: object-src 'none'; script-src 'nonce-{random}' 'unsafe-inline' 'unsafe-eval' 'strict-dynamic' https: http:; base-uri 'none'; report-uri https://your-report-collector.example.com/
Vous pouvez choisir une règle plus permissive si elle convient à votre cas d'utilisation. Des règles plus restrictives peuvent être appliquées sans préavis.
Activez le rendu interdomaine.
Les iFrames d'annonces peuvent charger des ressources externes qui ne sont pas nécessairement autorisées par le CSP. Étant donné que les iFrames du même domaine héritent du CSP de la fenêtre de niveau supérieur et que le GPT ne peut pas contrôler le contenu de la création, les créations du même domaine ne fonctionnent généralement pas correctement avec les en-têtes CSP.
Pour activer le rendu interdomaine pour toutes les créations, exécutez
googletag.pubads().setForceSafeFrame(true)
avant de charger des emplacements d'annonces.<!doctype html> <html> <head> <meta charset="utf-8"> <title>Hello GPT</title> <script src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" nonce="KC7tcz53FHqumKP1" async></script> <script nonce="KC7tcz53FHqumKP1"> window.googletag = window.googletag || {cmd: []}; googletag.cmd.push(function() { googletag.pubads().setForceSafeFrame(true); }); </script> </head>
Tests
Nous vous recommandons de tester d'abord vos règles en définissant l'en-tête Content-Security-Policy-Report-Only
au lieu de Content-Security-Policy
. L'en-tête signale les cas de non-respect, mais les autorise toujours sur la page.