Content Security Policy (CSP) to powszechnie obsługiwany standard zabezpieczeń mający na celu zapobieganie określonym typom ataków opartych na wstrzykiwaniu dając programistom kontrolę nad zasobami ładowanymi przez aplikacje. Z tego przewodnika dowiesz się, jak wdrożyć Menedżera tagów Google w witrynach, które używają CSP.
Aby używać CSP, włącz tag w kontenerze
Aby można było używać Menedżera tagów Google na stronie z dostawcą CSP, musi on uwzględniać parametr
uruchomienia kodu kontenera Menedżera tagów. Ten kod jest wbudowany
Kod JavaScript, który wstawia skrypt gtm.js
. Możesz to zrobić na kilka sposobów
np. przez użycie liczby jednorazowej lub haszu. Zalecaną metodą jest użycie
nonce, która powinna być nieodgadną, losową wartością wygenerowaną przez serwer.
dla każdej odpowiedzi. Podaj wartość jednorazową w Content-Security-
Dyrektywa zasady script-src
:
Content-Security-Policy:
script-src 'nonce-{SERVER-GENERATED-NONCE}';
img-src www.googletagmanager.com;
connect-src www.googletagmanager.com
Następnie skorzystaj z osobnej wersji kodu wbudowanego kontenera Menedżera tagów. Ustaw tę samą wartość w atrybucie liczby jednorazowej wbudowanego elementu skryptu na tę samą wartość:
<!-- Google Tag Manager -->
<script nonce='{SERVER-GENERATED-NONCE}'>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;var n=d.querySelector('[nonce]');
n&&j.setAttribute('nonce',n.nonce||n.getAttribute('nonce'));f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-XXXXXX');</script>
<!-- End Google Tag Manager -->
Menedżer tagów przekaże wtedy wartość jednorazową do wszystkich skryptów, do których zostanie dodana. stronę.
Istnieją też inne sposoby na umożliwienie wykonania wbudowanego skryptu: jako umieszczenie hasła wbudowanego skryptu w CSP.
Jeśli nie można zastosować zalecanych metod liczby jednorazowej lub haszowej, można zastosować
włącz wbudowany skrypt Menedżera tagów, dodając 'unsafe-inline'
do sekcji script-src
CSP.
Aby można było korzystać z tego podejścia, CSP musi zawierać te dyrektywy:
script-src: 'unsafe-inline' https://www.googletagmanager.com
img-src: www.googletagmanager.com
connect-src www.googletagmanager.com
Niestandardowe zmienne kodu JavaScript
Ze względu na sposób wdrożenia niestandardowych zmiennych kodu JavaScript mogą one
sprawdzi się jako undefined
w przypadku obecności CSP, chyba że 'unsafe-eval'
jest podana w sekcji script-src
CSP.
script-src: 'unsafe-eval'
Tryb podglądu
Aby można było korzystać z trybu podglądu Menedżera tagów Google, CSP musi zawierać parametr następujące dyrektywy:
script-src: https://googletagmanager.com https://tagmanager.google.com
style-src: https://googletagmanager.com https://tagmanager.google.com https://fonts.googleapis.com
img-src: https://googletagmanager.com https://ssl.gstatic.com https://www.gstatic.com
font-src: https://fonts.gstatic.com data:
Google Analytics 4 (Google Analytics)
Aby można było używać tagu Google Analytics 4 (Google Analytics), CSP musi zawierać parametr następujące dyrektywy:
script-src: https://*.googletagmanager.com
img-src: https://*.google-analytics.com https://*.googletagmanager.com
connect-src: https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com
W przypadku wdrożeń Google Analytics 4 (Google Analytics) korzystających z Google Signals CSP musi zawierać te dyrektywy:
script-src: https://*.googletagmanager.com
img-src: https://*.google-analytics.com https://*.analytics.google.com https://*.googletagmanager.com
https://*.g.doubleclick.net https://*.google.com https://*.google.<TLD>
connect-src: https://*.google-analytics.com https://*.analytics.google.com
https://*.googletagmanager.com https://*.g.doubleclick.net https://*.google.com https://*.google.<TLD>
frame-src: https://td.doubleclick.net
Universal Analytics (Google Analytics)
Aby można było używać tagu Universal Analytics (Google Analytics), CSP musi zawierać parametr następujące dyrektywy:
script-src: https://www.google-analytics.com https://ssl.google-analytics.com
img-src: https://www.google-analytics.com
connect-src: https://www.google-analytics.com
Konwersje Google Ads
Aby można było używać tagu konwersji Google Ads, dostawca CSP musi zawierać te elementy dyrektywy:
Aby zapewnić bezpieczne połączenia:
script-src: https://www.googleadservices.com https://www.google.com https://www.googletagmanager.com
img-src: https://googleads.g.doubleclick.net https://www.google.com https://google.com
frame-src: https://www.googletagmanager.com https://td.doubleclick.net
W przypadku niezabezpieczonych połączeń:
script-src: www.googleadservices.com www.google.com www.googletagmanager.com
img-src: googleads.g.doubleclick.net www.google.com google.com
Remarketing w Google Ads
Aby można było używać tagu remarketingowego Google Ads, dostawca CSP musi zawierać ten tag: dyrektywy.
Aby zapewnić bezpieczne połączenia:
script-src: https://www.googleadservices.com https://googleads.g.doubleclick.net https://www.google.com
img-src: https://www.google.com https://google.com
frame-src: https://bid.g.doubleclick.net https://td.doubleclick.net
W przypadku niezabezpieczonych połączeń:
script-src: www.googleadservices.com googleads.g.doubleclick.net www.google.com
img-src: www.google.com google.com
frame-src: bid.g.doubleclick.net td.doubleclick.net
Obraz typu beacon na dane użytkownika Google Ads
Aby używać obrazów typu beacon dla danych użytkownika Google Ads w bezpiecznym kontekście, CSP musi zawierać te dyrektywy:
script-src: https://www.googletagmanager.com
frame-src: https://www.googletagmanager.com
Obraz typu beacon dla danych użytkowników Google Ads nie działa w niezabezpieczonych kontekstach, dlatego CSP w takich przypadkach nie ma zastosowania.
Floodlight
Użytkownicy Floodlight mogą włączać dostawców CSP za pomocą poniższych konfiguracji. Zastąp
<FLOODLIGHT-CONFIG-ID>
wartości z konkretną
Identyfikator reklamodawcy Floodlight lub *
, by zezwolić na dowolny identyfikator reklamodawcy:
W przypadku wszystkich użytkowników:
img-src: https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net
frame-src: https://td.doubleclick.net
„Skrypty niestandardowe” obrazy typu beacon w Menedżerze tagów:
frame-src: https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net
Tagi graficzne:
img-src: https://ad.doubleclick.net
W przypadku trybu uzyskiwania zgody:
img-src: https://ade.googlesyndication.com