Korzystanie z Menedżera tagów z Content Security Policy

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

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

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

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