Criterio di sicurezza del contenuto (CSP) è un'applicazione ampiamente supportata standard di sicurezza mirato a prevenire determinati tipi di attacchi basati sull'iniezione dando agli sviluppatori il controllo sulle risorse caricate dalle loro applicazioni. Utilizza questa guida per capire come implementare Google Tag Manager sui siti che usa un CSP.
Abilita il tag contenitore per utilizzare CSP
Per utilizzare Google Tag Manager in una pagina con un CSP, quest'ultimo deve consentire l'utilizzo di
dell'esecuzione del codice del contenitore di Tag Manager. Questo codice è incorporato
Codice JavaScript che inserisce lo script gtm.js
. Esistono diversi modi per farlo
come l'uso di un nonce o di un hash. Il metodo consigliato consiste nell'utilizzare una
nonce, che dovrebbe essere un valore casuale non decifrabile generato dal server
singolarmente per ogni risposta. Fornisci il valore nonce nel campo Content-Security-
Istruzione del criterio script-src
:
Content-Security-Policy:
script-src 'nonce-{SERVER-GENERATED-NONCE}';
img-src www.googletagmanager.com;
connect-src www.googletagmanager.com
Quindi, utilizza la versione nonce-aware del codice del contenitore incorporato di Tag Manager. Imposta l'attributo nonce nell'elemento di script incorporato su questo stesso valore:
<!-- 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 -->
Tag Manager propaga quindi il nonce a tutti gli script che aggiunge della pagina.
Esistono altri approcci per abilitare l'esecuzione di uno script in linea, ad esempio: come fornire l'hash dello script incorporato nel CSP.
Se gli approcci nonce o hash consigliati non sono attuabili, è possibile
attiva lo script incorporato di Tag Manager aggiungendo 'unsafe-inline'
alla sezione script-src
di CSP.
Per utilizzare questo approccio, nel CSP sono necessarie le seguenti direttive:
script-src: 'unsafe-inline' https://www.googletagmanager.com
img-src: www.googletagmanager.com
connect-src www.googletagmanager.com
Variabili JavaScript personalizzate
Grazie al modo in cui vengono implementate le variabili JavaScript personalizzate, vengono utilizzate
restituirà undefined
in presenza di un CSP, a meno che 'unsafe-eval'
è fornita nella sezione script-src
di CSP.
script-src: 'unsafe-eval'
Modalità di anteprima
Per utilizzare la modalità di anteprima di Google Tag Manager, il CSP deve includere i campi le seguenti istruzioni:
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)
Per utilizzare il tag Google Analytics 4 (Google Analytics), il CSP deve includere i campi le seguenti istruzioni:
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
Per i deployment di Google Analytics 4 (Google Analytics) che utilizzano Google Signals, il parametro CSP deve includere le seguenti istruzioni:
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)
Per utilizzare il tag Universal Analytics (Google Analytics), il CSP deve includere il parametro le seguenti istruzioni:
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
Conversioni di Google Ads
Per utilizzare un tag di conversione di Google Ads, il CSP deve includere quanto segue. :
Per connessioni sicure:
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
Per le connessioni non sicure:
script-src: www.googleadservices.com www.google.com www.googletagmanager.com
img-src: googleads.g.doubleclick.net www.google.com google.com
Remarketing di Google Ads
Per utilizzare un tag di remarketing Google Ads, il CSP deve includere quanto segue. istruzioni.
Per connessioni sicure:
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
Per le connessioni non sicure:
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
Beaconing dei dati utente di Google Ads
Per utilizzare i beacon dei dati utente di Google Ads in contesti sicuri, CSP deve includere le seguenti istruzioni:
script-src: https://www.googletagmanager.com
frame-src: https://www.googletagmanager.com
Il beacon dei dati utente di Google Ads non viene eseguito in contesti non sicuri, pertanto CSP in questi casi non è applicabile.
Floodlight
Gli utenti Floodlight possono attivare i CSP utilizzando le seguenti configurazioni. Sostituisci
<FLOODLIGHT-CONFIG-ID>
valori con un valore specifico
ID inserzionista Floodlight o *
per consentire qualsiasi ID inserzionista:
Per tutti gli utenti:
img-src: https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net
frame-src: https://td.doubleclick.net
Per gli "script personalizzati" beacon in Tag Manager:
frame-src: https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net
Per i tag immagine:
img-src: https://ad.doubleclick.net
Per la modalità di consenso:
img-src: https://ade.googlesyndication.com