Kebijakan Keamanan Konten (CSP) adalah standar keamanan Web yang didukung luas yang dimaksudkan untuk mencegah jenis serangan berbasis injeksi tertentu dengan memberi developer kontrol atas resource yang dimuat oleh aplikasi mereka. Gunakan panduan ini untuk memahami cara men-deploy Google Tag Manager di situs yang menggunakan CSP.
Mengaktifkan tag penampung untuk menggunakan CSP
Untuk menggunakan Google Tag Manager di halaman dengan CSP, CSP harus memungkinkan eksekusi kode penampung Tag Manager Anda. Kode ini dibuat sebagai
kode JavaScript inline yang memasukkan skrip gtm.js
. Ada beberapa cara untuk melakukannya, seperti penggunaan nonce atau hash. Metode yang direkomendasikan adalah menggunakan nonce, yang harus berupa nilai acak yang tidak dapat diprediksi, yang dihasilkan server satu per satu untuk setiap respons. Berikan nilai nonce di perintah script-src
Kebijakan Keamanan Konten:
Content-Security-Policy: script-src 'nonce-{SERVER-GENERATED-NONCE}'; img-src www.googletagmanager.com
Kemudian, gunakan versi berbasis nonce dari kode penampung Tag Manager inline. Tetapkan atribut nonce di elemen skrip inline ke nilai yang sama:
<!-- 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 kemudian akan menyebarkan nonce ke skrip apa pun yang ditambahkannya ke halaman.
Ada cara lain untuk mengaktifkan eksekusi skrip inline, seperti menyediakan hash skrip inline dalam CSP.
Jika tidak dapat menggunakan nonce atau hash yang direkomendasikan, skrip inline Tag Manager dapat diaktifkan dengan menambahkan perintah 'unsafe-inline'
ke bagian script-src
CSP.
Perintah berikut diperlukan dalam CSP untuk menggunakan pendekatan ini:
script-src: 'unsafe-inline' https://www.googletagmanager.com
img-src: www.googletagmanager.com
Variabel JavaScript Kustom
Karena cara penerapan Variabel JavaScript Kustom, variabel ini akan dievaluasi ke undefined
jika ada CSP, kecuali jika perintah 'unsafe-eval'
diberikan di bagian script-src
pada CSP.
script-src: 'unsafe-eval'
Mode Pratinjau
Untuk menggunakan Mode Pratinjau Google Tag Manager, CSP harus menyertakan perintah berikut:
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)
Untuk menggunakan tag Google Analytics 4 (Google Analytics), CSP harus menyertakan perintah berikut:
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
Untuk deployment Google Analytics 4 (Google Analytics) yang menggunakan sinyal Google, CSP harus menyertakan perintah berikut:
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>
Universal Analytics (Google Analytics)
Untuk menggunakan tag Universal Analytics (Google Analytics), CSP harus menyertakan perintah berikut:
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
Konversi Google Ads
Untuk menggunakan tag konversi Google Ads, CSP harus menyertakan perintah berikut:
Untuk koneksi aman:
script-src: https://www.googleadservices.com https://www.google.com
img-src: https://googleads.g.doubleclick.net https://www.google.com https://google.com
Untuk koneksi tidak aman:
script-src: www.googleadservices.com www.google.com
img-src: googleads.g.doubleclick.net www.google.com google.com
Pemasaran ulang Google Ads
Untuk menggunakan tag pemasaran ulang Google Ads, CSP harus menyertakan perintah berikut.
Untuk koneksi aman:
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
Untuk koneksi tidak aman:
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
Floodlight
Pengguna Floodlight dapat mengaktifkan CSP menggunakan konfigurasi berikut. Ganti nilai <FLOODLIGHT-CONFIG-ID>
dengan ID pengiklan Floodlight tertentu, atau *
untuk mengizinkan ID pengiklan apa pun:
Untuk semua pengguna:
img-src: https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net
Untuk beacon "skrip kustom" di Tag Manager:
frame-src: https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net
Untuk tag gambar:
img-src: https://ad.doubleclick.net
Untuk mode izin:
img-src: https://ade.googlesyndication.com