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:
Określ listę dozwolonych domen, które mogą wstrzyknąć swoje zasoby na stronę.
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
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.
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.