Intégrer une stratégie de sécurité du contenu

Content Security Policy (CSP) est un moyen de sécuriser votre page Web en limitant les ressources et les scripts autorisés à se charger et à s'exécuter. Vous pouvez activer 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 CSP:

  1. Spécifiez une liste d'autorisation des domaines qui peuvent injecter leurs ressources sur la page.

  2. Spécifiez un nonce aléatoire, avec lequel les ressources de la page doivent être marquées pour se charger. Cette approche est connue sous le nom de CSP stricte.

Étant donné que les domaines utilisés par Google Publisher Tag (GPT) changent au fil du temps, nous n'acceptons que le protocole CSP strict (option 2). Cette approche vous évite d'avoir à gérer une liste continue de domaines qui pourraient devenir obsolètes et perturber votre site.

Configurer CSP avec GPT

  1. Activez CSP sur votre serveur Web.

    Suivez la procédure décrite dans la section Adoption de CSP stricte pour configurer l'en-tête CSP et appliquer le nonce à chaque tag de script de votre page, y compris gpt.js. GPT est spécifiquement 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 correspond à votre cas d'utilisation. Des règles plus restrictives risquent de ne pas fonctionner sans préavis.

  2. Activer l'affichage interdomaine

    Les cadres iFrame d'annonce peuvent charger des ressources externes qui ne sont peut-être pas autorisées par le fournisseur de services de cloud computing. Étant donné que les iFrame du même domaine héritent de la CSP de la fenêtre de premier niveau et que le tag 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 l'affichage interdomaine pour toutes les créations, exécutez googletag.pubads().setForceSafeFrame(true) avant de charger des espaces publicitaires.

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Hello GPT</title>
        <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" nonce="KC7tcz53FHqumKP1"></script>
        <script nonce="KC7tcz53FHqumKP1">
          window.googletag = window.googletag || {cmd: []};
          googletag.cmd.push(function() {
            googletag.pubads().setForceSafeFrame(true);
          });
        </script>
      </head>
    

Test

Nous vous recommandons de commencer par tester 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 infractions, mais les autorise tout de même sur la page.