コンテンツ セキュリティ ポリシーと統合する

コンテンツ セキュリティ ポリシー(CSP)は、Google の ウェブページ内で読み込みが許可されるリソースやスクリプトを制限し、 実行されます。CSP を有効にするには、Content-Security-Policy ヘッダーを ウェブサーバーからの HTTP レスポンス。

CSP を構成する標準的な方法は 2 つあります。

  1. ページにリソースを挿入できるドメインの許可リストを指定します。

  2. ランダムなノンスを指定します。このノンスを使用して、ページ上のリソースをマークする必要があります。 できます。この手法は厳格な CSP と呼ばれています。

Google パブリッシャー タグ(GPT)が使用するドメインが 厳密な CSP(オプション 2)のみがサポートされています。この方法により、 古くなったためにドメインのローリング リストが維持され、 サイトをご覧ください。

GPT で CSP を設定する

  1. ウェブサーバーで CSP を有効にします。

    厳格な CSP の採用に記載されている手順に沿って、 CSP ヘッダーを設定し、そのノンスをページ上のすべてのスクリプトタグに適用する (gpt.js を含む)。GPT では特に次の機能がサポートされています。 CSP ディレクティブ:

    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/
    

    ユースケースに適している場合は、制限の緩いポリシーを選択できます。さらに表示 制限付きポリシーが予告なく違反することがあります。

  2. クロスドメイン レンダリングを有効にします。

    広告の iframe で、許可されていない可能性のある外部リソースを読み込むことができる CSP同じドメインの iframe はトップレベル ウィンドウの CSP を継承し、 GPT ではクリエイティブのコンテンツを制御できない(同一ドメイン) CSP ヘッダーを使用すると、クリエイティブが適切に機能しなくなります。

    すべてのクリエイティブでクロスドメイン レンダリングを有効にするには、次のコマンドを実行します。 googletag.pubads().setForceSafeFrame(true) スロットを読み込みません

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

テスト

最初にポリシーをテストすることをおすすめします。それには、 Content-Security-Policy-Report-Only ヘッダーを Content-Security-Policy。ヘッダーで違反が報告されますが、 追加できます