कॉन्टेंट की सुरक्षा के बारे में नीति (सीएसपी), वेब की सुरक्षा के लिए इस्तेमाल किया जाने वाला एक स्टैंडर्ड है. इसका मकसद, डेवलपर को अपने ऐप्लिकेशन से लोड किए गए रिसॉर्स पर कंट्रोल देकर, इंजेक्शन पर आधारित कुछ तरह के हमलों को रोकना है. सीएसपी का इस्तेमाल करने वाली साइटों पर Google Tag Manager को डिप्लॉय करने का तरीका जानने के लिए, इस गाइड का इस्तेमाल करें.
सीएसपी का इस्तेमाल करने के लिए, कंटेनर टैग चालू करना
सीएसपी वाले पेज पर Google Tag Manager का इस्तेमाल करने के लिए, सीएसपी को आपके Tag Manager कंटेनर कोड को चलाने की अनुमति देनी होगी. इस कोड को इनलाइन JavaScript कोड के तौर पर बनाया गया है, जो gtm.js
स्क्रिप्ट को इंजेक्ट करता है. ऐसा करने के कई तरीके हैं. जैसे, नॉन्स या हैश का इस्तेमाल करना. हमारा सुझाव है कि आप नॉन्स का इस्तेमाल करें. यह एक ऐसी वैल्यू होनी चाहिए जिसका अनुमान न लगाया जा सके. यह वैल्यू, सर्वर हर रिस्पॉन्स के लिए अलग-अलग जनरेट करता है. Content-Security-
Policy script-src
डायरेक्टिव में नॉन्स वैल्यू दें:
Content-Security-Policy:
script-src 'nonce-{SERVER-GENERATED-NONCE}';
img-src www.googletagmanager.com;
connect-src www.googletagmanager.com
इसके बाद, इनलाइन Tag Manager कंटेनर कोड के नॉन्स-अवेयर वर्शन का इस्तेमाल करें. इनलाइन स्क्रिप्ट एलिमेंट पर मौजूद nonce एट्रिब्यूट की वैल्यू को भी इसी पर सेट करें:
<!-- 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
connect-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>
frame-src https://td.doubleclick.net
Google Ads कन्वर्ज़न
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 https://pagead2.googlesyndication.com
frame-src https://www.googletagmanager.com https://td.doubleclick.net
connect-src https://pagead2.googlesyndication.com
असुरक्षित कनेक्शन के लिए:
script-src www.googleadservices.com www.google.com www.googletagmanager.com
img-src googleads.g.doubleclick.net www.google.com google.com pagead2.googlesyndication.com
connect-src pagead2.googlesyndication.com
Google Ads की रीमार्केटिंग सुविधा
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://td.doubleclick.net
असुरक्षित कनेक्शन के लिए:
script-src www.googleadservices.com googleads.g.doubleclick.net www.google.com
img-src www.google.com google.com
frame-src td.doubleclick.net
Google Ads उपयोगकर्ता डेटा बीकन
सुरक्षित कॉन्टेक्स्ट में चलने के दौरान, 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