Integracja z polityką bezpieczeństwa treści

Polityka bezpieczeństwa treści służy do zabezpieczania strony internetowej przez ograniczenie zasobów, które mogą być wczytywane i uruchamiane. Aby włączyć CSP, ustaw nagłówek Content-Security-Policy w odpowiedzi HTTP z serwera WWW.

CSP można skonfigurować na 2 sposoby:

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

  2. Określ losowy jednorazowy, z którego należy oznaczyć zasoby strony, aby zostały one wczytane. Takie podejście jest określane jako rygorystyczne (CSP).

Domeny używane przez tag wydawcy Google (GPT) zmieniają się z czasem, więc obsługujemy tylko rygorystyczne zasady dotyczące CSP (opcja 2). Takie podejście eliminuje konieczność utrzymywania stałej listy domen, które mogą stać się nieaktualne i zepsuć pozycję witryny.

Konfigurowanie CSP z użyciem GPT

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

    Wykonaj czynności opisane w sekcji Wdrażanie rygorystycznego CSP, aby skonfigurować nagłówek CSP i zastosować ten sam tag do każdego tagu skryptu na stronie, w tym do gpt.js. GPT obsługuje te 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/
    

    Możesz wybrać mniej restrykcyjne zasady, jeśli pasują do Twojego przypadku użycia. Bardziej rygorystyczne zasady mogą nie działać bez powiadomienia.

  2. Włącz renderowanie w wielu domenach.

    Elementy iframe reklamy mogą wczytywać zasoby zewnętrzne, które nie są dozwolone przez CSP. Elementy iframe domeny dziedziczą CSP okna najwyższego poziomu, a GPT nie może kontrolować ich zawartości, dlatego kreacje z tej samej domeny zwykle nie działają prawidłowo z nagłówkami CSP.

    Aby włączyć renderowanie w wielu domenach, wykonaj googletag.pubads().setForceSafeFrame(true) przed wczytaniem dowolnego boksu reklamowego.

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

Testowanie

Zalecamy przetestowanie zasad za pomocą nagłówka Content-Security-Policy-Report-Only zamiast Content-Security-Policy. Nagłówek informuje o naruszeniach, ale nadal zezwala na nie.