In eine Content Security Policy integrieren

Mit der Content Security Policy (CSP) können Sie indem Sie einschränken, welche Ressourcen und Skripts geladen und ausführen können. Sie können die CSP aktivieren, indem Sie einen Content-Security-Policy-Header in HTTP-Antworten von Ihrem Webserver.

Es gibt zwei Standardmethoden, um die CSP zu konfigurieren:

  1. Geben Sie eine Zulassungsliste mit Domains an, die ihre Ressourcen auf der Seite einfügen können.

  2. Gib eine zufällige Nonce an, mit der Ressourcen auf der Seite markiert werden müssen um sie zu laden. Dieser Ansatz wird als strikte CSP bezeichnet.

Da sich die von Google Publisher-Tags (GPT) verwendeten Domains unterstützen wir nur eine strikte CSP (Option 2). Bei diesem Ansatz ist es nicht nötig, Pflegen Sie eine fortlaufende Liste von Domains, die veraltet sein könnten und Website.

CSP mit GPT einrichten

  1. Aktivieren Sie die CSP auf Ihrem Webserver.

    Folgen Sie den Schritten unter Strikte CSP einführen, um den CSP-Header einrichten und die Nonce auf jedes Skript-Tag auf Ihrer Seite anwenden. einschließlich gpt.js. GPT unterstützt insbesondere folgende CSP-Anweisungen:

    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/
    

    Sie können eine weitergehende Richtlinie auswählen, wenn dies zu Ihrem Anwendungsfall passt. Mehr restriktive Richtlinien möglicherweise ohne Vorankündigung funktionsunfähig sind.

  2. Domainübergreifendes Rendering aktivieren

    Anzeigen-iFrames können externe Ressourcen laden, die vom CSP Da dieselben Domain-iFrames die CSP des Top-Level-Fensters übernehmen, GPT kann den Inhalt des Creatives nicht steuern (gleiche Domain) Creatives funktionieren normalerweise nicht ordnungsgemäß mit CSP-Headern.

    Um das domainübergreifende Rendering für alle Creatives zu aktivieren, führen Sie den folgenden Befehl aus: googletag.pubads().setForceSafeFrame(true) bevor Anzeigenflächen geladen werden.

    <!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>
    

Test

Wir empfehlen Ihnen, Ihre Richtlinien zuerst zu testen. Legen Sie dazu das Attribut Content-Security-Policy-Report-Only-Header statt im Content-Security-Policy. Die Kopfzeile meldet Verstöße, lässt aber dennoch zu. auf der Seite platzieren.