Etiket Yöneticisi'ni İçerik Güvenliği Politikası ile Kullanma

İçerik Güvenliği Politikası (CSP), geliştiricilere uygulamaları tarafından yüklenen kaynaklar üzerinde kontrol sağlayarak belirli yerleştirme tabanlı saldırı türlerini önlemeyi amaçlayan ve yaygın olarak desteklenen bir web güvenliği standardıdır. Google Etiket Yöneticisi'ni CSP kullanan sitelere nasıl dağıtacağınızı anlamak için bu kılavuzdan yararlanın.

CSP kullanmak için kapsayıcı etiketi etkinleştirme

Google Etiket Yöneticisi'ni CSP içeren bir sayfada kullanmak için CSP'nin Etiket Yöneticisi kapsayıcı kodunuzun yürütülmesine izin vermesi gerekir. Bu kod, gtm.js komut dosyasını ekleyen satır içi JavaScript kodu olarak oluşturulur. Bunu tek seferlik rastgele veya karma olarak kullanma gibi birkaç yol vardır. Önerilen yöntem tek seferlik rastgele bir değer kullanmaktır. Bu, sunucunun her yanıt için ayrı ayrı oluşturduğu tahmin edilemeyen, rastgele bir değer olmalıdır. İçerik Güvenliği-Politikası script-src yönergesinde "nonce" değerini sağlayın:

Content-Security-Policy: script-src 'nonce-{SERVER-GENERATED-NONCE}'; img-src www.googletagmanager.com

Ardından, satır içi Etiket Yöneticisi kapsayıcı kodunun güvenli olmayan sürümünü kullanın. Satır içi komut dosyası öğesindeki nonce özelliğini aynı değere ayarlayın:

<!-- 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 -->

Daha sonra Etiket Yöneticisi, sayfaya eklediği komut dosyalarına tek seferlik rastgele sayıyı yayar.

Satır içi komut dosyasının yürütülmesini sağlamak için CSP'de satır içi komut dosyasının karmasını sağlamak gibi başka yaklaşımlar da vardır.

Önerilen "nonce" veya "hash" yaklaşımları uygun değilse 'unsafe-inline' yönergesini CSP'nin script-src bölümüne ekleyerek Etiket Yöneticisi satır içi komut dosyasını etkinleştirebilirsiniz.

Bu yaklaşımı kullanmak için İGP'de aşağıdaki yönergeler gereklidir:

script-src: 'unsafe-inline' https://www.googletagmanager.com
img-src: www.googletagmanager.com

Özel JavaScript Değişkenleri

Özel JavaScript değişkenleri, uygulanma şekli nedeniyle İGP'nin script-src bölümünde 'unsafe-eval' yönergesi belirtilmediği sürece CSP mevcut olduğunda undefined olarak değerlendirilir.

script-src: 'unsafe-eval'

Önizleme Modu

Google Etiket Yöneticisi'nin Önizleme Modu'nu kullanmak için İGP'nin aşağıdaki yönergeleri içermesi gerekir:

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)

Google Analytics 4 (Google Analytics) etiketini kullanmak için İGP'nin aşağıdaki yönergeleri içermesi gerekir:

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

Google Sinyalleri kullanan Google Analytics 4 (Google Analytics) dağıtımları için İGP'nin aşağıdaki yönergeleri içermesi gerekir:

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)

Universal Analytics (Google Analytics) etiketini kullanmak için İGP'nin aşağıdaki yönergeleri içermesi gerekir:

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

İGP'nin Google Ads dönüşüm etiketi kullanabilmesi için aşağıdaki yönergeleri içermesi gerekir:

Güvenli bağlantılar için:

script-src: https://www.googleadservices.com https://www.google.com
img-src: https://googleads.g.doubleclick.net https://www.google.com https://google.com

Güvenli olmayan bağlantılar için:

script-src: www.googleadservices.com www.google.com
img-src: googleads.g.doubleclick.net www.google.com google.com

İGP'nin Google Ads yeniden pazarlama etiketini kullanabilmesi için aşağıdaki yönergeleri içermesi gerekir.

Güvenli bağlantılar için:

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

Güvenli olmayan bağlantılar için:

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

Floodlight

Floodlight kullanıcıları, aşağıdaki yapılandırmaları kullanarak CSP'leri etkinleştirebilir. Herhangi bir reklamveren kimliğine izin vermek için <FLOODLIGHT-CONFIG-ID> değerlerini belirli bir Floodlight reklamveren kimliğiyle veya * ile değiştirin:

Tüm kullanıcılar için:

img-src: https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net
frame-src: https://td.doubleclick.net

Etiket Yöneticisi'ndeki "özel komut dosyaları" işaretçileri için:

frame-src: https://<FLOODLIGHT-CONFIG-ID>.fls.doubleclick.net

Resim etiketleri için:

img-src: https://ad.doubleclick.net

İzin modu için:

img-src: https://ade.googlesyndication.com