कॉन्टेंट की सुरक्षा के लिए नीति (सीएसपी), वेब सुरक्षा का एक ऐसा स्टैंडर्ड है जो कई प्लैटफ़ॉर्म पर काम करता है. इसका मकसद, इंजेक्शन पर आधारित कुछ खास तरह के हमलों को रोकना है. इसके लिए, डेवलपर को उनके ऐप्लिकेशन से लोड किए गए संसाधनों पर कंट्रोल दिया जाता है. इस गाइड का इस्तेमाल करके, सीएसपी का इस्तेमाल करने वाली साइटों पर Google Tag Manager को डिप्लॉय करने का तरीका जानें.
सीएसपी का इस्तेमाल करने के लिए, कंटेनर टैग चालू करना
सीएसपी वाले पेज पर Google Tag Manager का इस्तेमाल करने के लिए, सीएसपी को आपके Tag Manager कंटेनर कोड को लागू करने की अनुमति देनी होगी. यह कोड, इनलाइन JavaScript कोड के तौर पर बनाया गया है. यह gtm.js स्क्रिप्ट को इंजेक्ट करता है. ऐसा करने के कई तरीके हैं. जैसे, नॉन्स या हैश का इस्तेमाल करना. इसके लिए, नॉन्स का इस्तेमाल करने का सुझाव दिया जाता है. यह एक ऐसी रैंडम वैल्यू होनी चाहिए जिसका अनुमान न लगाया जा सके. साथ ही, सर्वर को हर रिस्पॉन्स के लिए इसे अलग से जनरेट करना चाहिए. Content-Security-Policy script-src-elem डायरेक्टिव में नॉन्स वैल्यू को nonce-{SERVER-GENERATED-NONCE} के तौर पर दें. साथ ही, इनलाइन 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 उस नॉन्स को उन सभी स्क्रिप्ट में भेज देगा जिन्हें वह पेज में जोड़ता है.
इनलाइन स्क्रिप्ट को लागू करने के लिए, अन्य तरीके भी अपनाए जा सकते हैं. जैसे, सीएसपी में इनलाइन स्क्रिप्ट का हैश देना.
अगर सुझाए गए नॉन्स या हैश तरीके काम नहीं करते हैं, तो Tag Manager की इनलाइन स्क्रिप्ट को चालू किया जा सकता है. इसके लिए, सीएसपी के script-src-elem सेक्शन में 'unsafe-inline' डायरेक्टिव जोड़ें.
इस तरीके का इस्तेमाल करने के लिए, सीएसपी को इनकी अनुमति देनी होगी:
| डायरेक्टिव | सामग्री |
|---|---|
script-src-elem |
https://www.googletagmanager.com 'unsafe-inline' |
img-src |
https://www.googletagmanager.com |
connect-src |
https://www.googletagmanager.com https://www.google.com |
कस्टम JavaScript वैरिएबल
कस्टम JavaScript वैरिएबल को लागू करने के तरीके की वजह से, सीएसपी की मौजूदगी में उनकी वैल्यू undefined होगी. हालांकि, ऐसा तब नहीं होगा, जब सीएसपी के script-src सेक्शन में 'unsafe-eval' डायरेक्टिव दिया गया हो.
| डायरेक्टिव | सामग्री |
|---|---|
script-src |
'unsafe-eval' |
झलक मोड
Google Tag Manager के झलक मोड का इस्तेमाल करने के लिए, सीएसपी को इन चीज़ों की अनुमति देनी होगी:
| डायरेक्टिव | सामग्री |
|---|---|
script-src-elem |
https://www.googletagmanager.com https://tagmanager.google.com |
style-src |
https://www.googletagmanager.com https://tagmanager.google.com https://fonts.googleapis.com |
img-src |
https://www.googletagmanager.com https://ssl.gstatic.com https://www.gstatic.com |
font-src |
https://fonts.gstatic.com data: |
Google Analytics
Google Analytics का इस्तेमाल करने के लिए, सीएसपी को इन चीज़ों की अनुमति देनी होगी:
| डायरेक्टिव | सामग्री |
|---|---|
script-src-elem |
https://www.googletagmanager.com |
img-src |
https://www.googletagmanager.com https://*.google-analytics.com https://*.google.com https://*.google.<TLD> https://*.g.doubleclick.net |
connect-src |
https://www.googletagmanager.com https://*.google-analytics.com https://*.google.com https://*.google.<TLD> https://*.g.doubleclick.net https://pagead2.googlesyndication.com |
frame-src |
https://www.googletagmanager.com |
Google Ads की किसी भी सुविधा के बिना Google Analytics का इस्तेमाल करने के लिए, सीएसपी को इनकी अनुमति देनी होगी:
| डायरेक्टिव | सामग्री |
|---|---|
script-src-elem |
https://www.googletagmanager.com |
img-src |
https://www.googletagmanager.com https://*.google-analytics.com |
connect-src |
https://www.googletagmanager.com https://*.google-analytics.com https://*.google.com |
Google Ads
Google Ads कन्वर्ज़न, रीमार्केटिंग या कन्वर्ज़न लिंक करने वाले टैग का इस्तेमाल करने के लिए, सीएसपी को इन चीज़ों की अनुमति देनी होगी:
| डायरेक्टिव | सामग्री |
|---|---|
script-src-elem |
https://www.googletagmanager.com https://www.googleadservices.com https://www.google.com |
img-src |
https://www.googletagmanager.com https://www.googleadservices.com https://googleads.g.doubleclick.net https://pagead2.googlesyndication.com https://www.google.com https://www.google.<TLD> |
connect-src |
https://www.googletagmanager.com https://www.googleadservices.com https://googleads.g.doubleclick.net https://pagead2.googlesyndication.com https://www.google.com https://www.google.<TLD> https://ad.doubleclick.net |
frame-src |
https://www.googletagmanager.com |
Google Ads में उपयोगकर्ता का डेटा
सुरक्षित कॉन्टेक्स्ट में Google Ads के उपयोगकर्ता डेटा बीकन का इस्तेमाल करने के लिए, सीएसपी को इन चीज़ों की अनुमति देनी होगी:
| डायरेक्टिव | सामग्री |
|---|---|
script-src-elem |
https://www.googletagmanager.com |
connect-src |
https://www.google.com |
frame-src |
https://www.googletagmanager.com |
Google Ads के उपयोगकर्ता डेटा का बीकन, असुरक्षित कॉन्टेक्स्ट में काम नहीं करता. इसलिए, ऐसे मामलों में सीएसपी कॉन्फ़िगरेशन लागू नहीं होता.
Floodlight
Floodlight का इस्तेमाल करने के लिए, सीएसपी को इन चीज़ों की अनुमति देनी होगी:
| डायरेक्टिव | सामग्री |
|---|---|
img-src |
https://www.googletagmanager.com https://ad.doubleclick.net https://ade.googlesyndication.com https://adservice.google.com |
connect-src |
https://pagead2.googlesyndication.com https://www.google.com https://www.googleadservices.com https://ad.doubleclick.net |
frame-src |
https://www.googletagmanager.com |
Floodlight की कस्टम स्क्रिप्ट इस्तेमाल करने के लिए, सीएसपी को ऊपर बताई गई चीज़ों के अलावा, इन चीज़ों की भी अनुमति देनी होगी:
| डायरेक्टिव | सामग्री |
|---|---|
frame-src |
https://*.fls.doubleclick.net |
Merchant Center
Merchant Center का इस्तेमाल करने के लिए, सीएसपी को इन कामों की अनुमति देनी होगी:
| डायरेक्टिव | सामग्री |
|---|---|
script-src-elem |
https://www.googletagmanager.com |
img-src |
https://*.merchant-center-analytics.goog |
connect-src |
https://*.merchant-center-analytics.goog |
विज्ञापन देने वाले लोगों या कंपनियों के लिए Google टैग गेटवे
विज्ञापन देने वाले लोगों या कंपनियों के लिए Google टैग गेटवे का इस्तेमाल करने पर, Google टैग आपकी वेबसाइट पर मौजूद मेज़रमेंट पाथ से लोड होता है और उस पर डेटा भेजता है. उदाहरण के लिए, https://www.example.com/metrics. कुछ टैग अब भी Google डोमेन को अनुरोध भेजते हैं. इसलिए, हर प्रॉडक्ट के लिए लिस्ट किए गए डायरेक्टिव को बनाए रखें. साथ ही, इनकी अनुमति दें:
| डायरेक्टिव | सामग्री | मकसद |
|---|---|---|
script-src-elem |
'self' |
आपके मेज़रमेंट पाथ से Google टैग लोड किया जा रहा है |
img-src |
'self' |
मेज़रमेंट के अनुरोध |
connect-src |
'self' |
मेज़रमेंट के अनुरोध |
worker-src |
'self' |
सर्विस वर्कर |
पक्का करें कि आपका सीडीएन या वेब सर्वर, आपके मेज़रमेंट पाथ से मिलने वाले रिस्पॉन्स में आपकी वेबसाइट का Content-Security-Policy हेडर न जोड़े.
ऐसा न करने पर, ब्राउज़र सर्विस वर्कर को ब्लॉक कर सकता है.
सर्वर साइड टैगिंग
जब Google टैग किसी सर्वर कंटेनर को डेटा भेजता है, तो सीएसपी को आपके टैग करने वाले सर्वर को भी अनुमति देनी चाहिए. ये डायरेक्टिव, हर प्रॉडक्ट के लिए लिस्ट किए गए डायरेक्टिव की जगह नहीं लेते. जैसे, https://www.googletagmanager.com.
आपको क्या जोड़ना है, यह इस बात पर निर्भर करता है कि आपका टैग करने वाला सर्वर कहां होस्ट किया गया है:
| डायरेक्टिव | सेम-ऑरिजिन सेटअप | सबडोमेन का सेटअप | मकसद |
|---|---|---|---|
img-src |
'self' |
https://TAGGING_SERVER_DOMAIN |
मेज़रमेंट के अनुरोध |
connect-src |
'self' |
https://TAGGING_SERVER_DOMAIN |
मेज़रमेंट के अनुरोध |
frame-src |
'self' |
https://TAGGING_SERVER_DOMAIN |
सर्विस वर्कर |
worker-src |
'self' |
कॉल करने की ज़रूरत नहीं है | सर्विस वर्कर |
script-src-elem |
'self' |
https://TAGGING_SERVER_DOMAIN |
सिर्फ़ तब, जब टैग करने वाले सर्वर से Google टैग लोड किया जाता है |
सेम-ऑरिजिन सेटअप में, टैग करने वाला सर्वर आपकी वेबसाइट के पाथ से दिखाया जाता है. उदाहरण के लिए, https://www.example.com/metrics. सबडोमेन सेटअप में, TAGGING_SERVER_DOMAIN को टैग करने वाले सर्वर के डोमेन से बदलें. उदाहरण के लिए, sgtm.example.com.
एक ही ऑरिजिन वाले सेटअप में, पक्का करें कि आपका सीडीएन या वेब सर्वर, टैगिंग पाथ से मिलने वाले रिस्पॉन्स में आपकी वेबसाइट का Content-Security-Policy हेडर न जोड़े.
ऐसा न करने पर, ब्राउज़र सर्विस वर्कर को ब्लॉक कर सकता है.
सर्विस वर्कर
Google टैग, सर्विस वर्कर का इस्तेमाल सिर्फ़ तब करता है, जब विज्ञापन देने वाले लोगों या कंपनियों के लिए Google टैग गेटवे या सर्वर-साइड टैगिंग का इस्तेमाल किया जाता है. हर सेटअप के लिए ज़रूरी निर्देशों के बारे में जानने के लिए, विज्ञापन देने वाले लोगों या कंपनियों के लिए Google टैग गेटवे और सर्वर-साइड टैगिंग लेख पढ़ें. अगर दोनों का इस्तेमाल किया जाता है, तो सीएसपी को दोनों की अनुमति देनी होगी.
Tag Assistant की मदद से समस्या हल करना
कॉन्टेंट की सुरक्षा के लिए नीति (सीएसपी) से जुड़ी समस्याएं हल करने के लिए, Tag Assistant का इस्तेमाल करें. Tag Assistant, उन रिसॉर्स की सूची दिखाएगा जिन्हें कॉन्टेंट की सुरक्षा के लिए बनी नीति के तहत ब्लॉक किया गया है.
Tag Assistant खोलें और अपनी वेबसाइट का यूआरएल डालें. आपकी वेबसाइट एक नए टैब में खुल जाएगी.
अगर आपके पेज पर कॉन्टेंट की सुरक्षा के लिए बनी नीति किसी रिसॉर्स को ब्लॉक कर रही है, तो Tag Assistant के पेज से जुड़ी समस्याएं सेक्शन में सीएसपी से जुड़ी समस्या दिखेगी.

अपने पेज पर ब्लॉक किए गए सभी रिसॉर्स की सूची देखने के लिए, सीएसपी से जुड़ी समस्या के बगल में मौजूद, समस्या देखें को चुनें.

ब्लॉक किए गए सभी संसाधनों को कॉन्टेंट की सुरक्षा के लिए बनी नीति में जोड़ें.