कॉन्टेंट की सुरक्षा के बारे में नीति के साथ Tag Manager का इस्तेमाल करना

कॉन्टेंट की सुरक्षा के बारे में नीति (सीएसपी), बड़े पैमाने पर काम करने वाला वेब सुरक्षा मानक है. इसका मकसद, इंजेक्शन लगाने वाले कुछ खास तरह के हमलों को रोकना है. इसके लिए, डेवलपर को अपने ऐप्लिकेशन में लोड किए जाने वाले संसाधनों पर कंट्रोल दिया जाता है. इस गाइड की मदद से, सीएसपी का इस्तेमाल करने वाली साइटों पर Google Tag Manager को डिप्लॉय करने का तरीका जानें.

सीएसपी का इस्तेमाल करने के लिए कंटेनर टैग चालू करें

सीएसपी वाले पेज पर Google Tag Manager का इस्तेमाल करने के लिए, सीएसपी को आपके Tag Manager कंटेनर कोड को चलाने की अनुमति देनी होगी. इस कोड को इनलाइन JavaScript कोड के तौर पर बनाया गया है, जो gtm.js स्क्रिप्ट इंजेक्ट करता है. ऐसा करने के कई तरीके हैं, जैसे कि नॉन्स या हैश का इस्तेमाल. हमारा सुझाव है कि आप nonce का इस्तेमाल करें. यह एक ऐसी वैल्यू होनी चाहिए जिसे पहचाना न जा सके, जिसे सर्वर हर जवाब के लिए अलग-अलग जनरेट करता है. कॉन्टेंट की सुरक्षा से जुड़ी नीति script-src डायरेक्टिव में नॉन्स वैल्यू डालें:

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

इसके बाद, इनलाइन Tag Manager कंटेनर कोड के ऐसे वर्शन का इस्तेमाल करें जो बिना जानकारी वाला है. इनलाइन स्क्रिप्ट एलिमेंट पर नॉन्स एट्रिब्यूट को इसी वैल्यू पर सेट करें:

<!-- 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 नॉन्स को उन सभी स्क्रिप्ट पर लागू करेगा जिन्हें वह पेज में जोड़ता है.

इनलाइन स्क्रिप्ट को लागू करने के कई और तरीके भी हैं, जैसे कि सीएसपी में इनलाइन स्क्रिप्ट का हैश देना.

अगर सुझाए गए नॉन्स या हैश तरीकों का इस्तेमाल करना मुमकिन नहीं है, तो सीएसपी के script-src सेक्शन में 'unsafe-inline' डायरेक्टिव को जोड़कर, Tag Manager इनलाइन स्क्रिप्ट को चालू किया जा सकता है.

इस तरीके का इस्तेमाल करने के लिए सीएसपी में इन निर्देशों की ज़रूरत होती है:

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

कस्टम JavaScript वैरिएबल

कस्टम JavaScript वैरिएबल को लागू करने के तरीके की वजह से, सीएसपी की मौजूदगी में undefined का आकलन किया जाएगा. ऐसा तब तक होगा, जब तक सीएसपी के script-src सेक्शन में 'unsafe-eval' निर्देश नहीं दिया गया हो.

script-src: 'unsafe-eval'

झलक मोड

Google Tag Manager के झलक मोड का इस्तेमाल करने के लिए, सीएसपी में नीचे दिए गए निर्देश शामिल होने चाहिए:

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) टैग का इस्तेमाल करने के लिए, सीएसपी में ये निर्देश शामिल होने चाहिए:

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 सिग्नल' का इस्तेमाल करके, Google Analytics 4 (Google Analytics) डिप्लॉयमेंट के लिए, सीएसपी में ये डायरेक्टिव शामिल होने चाहिए:

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>

यूनिवर्सल Analytics (Google Analytics)

यूनिवर्सल Analytics (Google Analytics) टैग का इस्तेमाल करने के लिए, सीएसपी में नीचे दिए गए निर्देश शामिल होने चाहिए:

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

Google Ads कन्वर्ज़न टैग का इस्तेमाल करने के लिए, सीएसपी में ये निर्देश शामिल होने चाहिए:

सुरक्षित कनेक्शन के लिए:

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

असुरक्षित कनेक्शन के लिए:

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

Google Ads रीमार्केटिंग टैग का इस्तेमाल करने के लिए, सीएसपी में ये निर्देश शामिल होने चाहिए.

सुरक्षित कनेक्शन के लिए:

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

असुरक्षित कनेक्शन के लिए:

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

सुरक्षित कॉन्टेक्स्ट में चलते समय, Google Ads के उपयोगकर्ता डेटा बीकन का इस्तेमाल करने के लिए, सीएसपी में ये निर्देश शामिल होने चाहिए:

script-src: https://www.googletagmanager.com
frame-src: https://www.googletagmanager.com

Google Ads का उपयोगकर्ता डेटा बीकन, असुरक्षित कॉन्टेक्स्ट में नहीं चलता है. इसलिए, इन मामलों में सीएसपी कॉन्फ़िगरेशन लागू नहीं होता.

फ़्लडलाइट

Floodlight के उपयोगकर्ता, इन कॉन्फ़िगरेशन का इस्तेमाल करके सीएसपी चालू कर सकते हैं. किसी भी विज्ञापन देने वाले के आईडी को अनुमति देने के लिए, <FLOODLIGHT-CONFIG-ID> वैल्यू को किसी खास Floodlight विज्ञापन देने वाले के आईडी या * से बदलें:

सभी उपयोगकर्ताओं के लिए:

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

Tag Manager में "कस्टम स्क्रिप्ट" बीकन के लिए:

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

इमेज टैग के लिए:

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

सहमति मोड के लिए:

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