Integracja z polityką bezpieczeństwa treści

Polityka bezpieczeństwa treści (CSP) to sposób ochrony ograniczając zakres zasobów i skryptów, które mogą być wczytywane . Aby włączyć CSP, ustaw nagłówek Content-Security-Policy w Odpowiedzi HTTP z serwera WWW.

Istnieją 2 standardowe sposoby konfigurowania CSP:

  1. Określ listę dozwolonych domen, które mogą wstrzykiwać swoje zasoby na stronie.

  2. Podaj losową liczbę jednorazową, przy użyciu której zasoby na stronie muszą być oznaczone w w celu ich wczytania. Takie podejście jest nazywane ścisłym CSP.

Ponieważ domeny używane przez tag wydawcy Google (GPT) zmieniają się obsługujemy tylko rygorystyczne zasady CSP (opcja 2). Takie podejście eliminuje konieczność Dbaj o aktualność listy domen, które mogą stać się nieaktualne i witrynie.

Konfigurowanie CSP za pomocą GPT

  1. Włącz CSP na swoim serwerze WWW.

    Wykonaj czynności opisane w artykule o przyjmowaniu rygorystycznego CSP, aby: skonfiguruj nagłówek CSP i zastosuj liczbę jednorazową do każdego tagu skryptu na stronie, w tym gpt.js. GPT obsługuje w szczególności te elementy: Dyrektywy 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/
    

    W razie potrzeby możesz wybrać mniej rygorystyczną zasadę. Więcej restrykcyjne zasady mogą zostać naruszone bez powiadomienia.

  2. Włącz renderowanie w wielu domenach.

    Elementy iframe reklam mogą wczytywać zasoby zewnętrzne, które są niedozwolone przez CSP. Elementy iframe w tej samej domenie dziedziczą CSP okna najwyższego poziomu, GPT nie może kontrolować zawartości kreacji, ta sama domena kreacje nie będą prawidłowo działać z nagłówkami CSP.

    Aby włączyć renderowanie w wielu domenach wszystkich kreacji, uruchom polecenie googletag.pubads().setForceSafeFrame(true) przed wczytaniem boksów reklamowych.

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

Testowanie

Zalecamy wcześniejsze przetestowanie zasad przez ustawienie Content-Security-Policy-Report-Only zamiast Content-Security-Policy Nagłówek zgłasza naruszenia, ale nadal zezwala ich na stronie.