कॉन्टेंट की सुरक्षा नीति के साथ इंटिग्रेट करना

कॉन्टेंट की सुरक्षा नीति (सीएसपी), आपके वेब पेज को सुरक्षित करने का एक ज़रिया है. यह सीमित करती है कि किन रिसॉर्स और स्क्रिप्ट को लोड करके, एक्ज़ीक्यूट करने की अनुमति दी जाए. अपने वेब सर्वर से एचटीटीपी रिस्पॉन्स में Content-Security-Policy हेडर सेट करके, सीएसपी को चालू किया जा सकता है.

सीएसपी को कॉन्फ़िगर करने के दो स्टैंडर्ड तरीके हैं:

  1. अनुमति वाली सूची में उन डोमेन के बारे में बताएं जो पेज पर अपने रिसॉर्स को इंजेक्ट कर सकते हैं.

  2. कोई रैंडम क्रम बताएं, जिसके साथ पेज पर मौजूद रिसॉर्स को लोड होने के लिए मार्क किया जाना ज़रूरी है. इस तरीके को सख्त सीएसपी कहा जाता है.

Google पब्लिशर टैग (GPT) में जिन डोमेन का इस्तेमाल होता है, उनमें समय के साथ बदलाव होता है. इसलिए, हम सिर्फ़ सख्त सीएसपी (विकल्प 2) का इस्तेमाल करते हैं. इस तरीके से, ऐसे डोमेन की रोलिंग सूची बनाए रखने की ज़रूरत नहीं होती जो पुराने हो सकते हैं और आपकी साइट को तोड़ सकते हैं.

सीएसपी को GPT से सेट अप करना

  1. अपने वेब सर्वर पर सीएसपी चालू करें.

    सीएसपी सेट अप करने के लिए, सख्त सीएसपी का पालन करने के लिए दिया गया तरीका अपनाएं और पेज के हर स्क्रिप्ट टैग पर नॉन्स लागू करें. इसमें gpt.js भी शामिल है. GPT विशिष्ट रूप से निम्न CSP निर्देशों का समर्थन करता है:

    Content-Security-Policy:
      object-src 'none';
      script-src 'nonce-{random}' 'unsafe-inline' 'unsafe-eval' 'strict-dynamic' https: http:;
      base-uri 'none';
      report-uri https://your-report-collector.example.com/
    

    अगर आपके इस्तेमाल के उदाहरण के हिसाब से नीति की अनुमति है, तो आपके पास अनुमति देने का विकल्प होता है. बिना पाबंदी के ज़्यादा नीतियां लागू की जा सकती हैं.

  2. क्रॉस-डोमेन रेंडरिंग चालू करें.

    विज्ञापन iframe ऐसे बाहरी संसाधन लोड कर सकता है जिनकी अनुमति शायद सीएसपी ने न दी हो. एक जैसे डोमेन iframes में टॉप लेवल विंडो की सीएसपी लागू होती है और जीपीटी, क्रिएटिव के कॉन्टेंट को कंट्रोल नहीं कर सकता. इसलिए, समान डोमेन वाले क्रिएटिव आम तौर पर, सीएसपी हेडर के साथ ठीक से काम नहीं करेंगे.

    सभी क्रिएटिव के लिए क्रॉस-डोमेन रेंडरिंग चालू करने के लिए, कोई भी विज्ञापन स्लॉट लोड करने से पहले googletag.pubads().setForceSafeFrame(true) लागू करें.

    <!doctype html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Hello GPT</title>
        <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" nonce="KC7tcz53FHqumKP1"></script>
        <script nonce="KC7tcz53FHqumKP1">
          window.googletag = window.googletag || {cmd: []};
          googletag.cmd.push(function() {
            googletag.pubads().setForceSafeFrame(true);
          });
        </script>
      </head>
    

टेस्ट करना

हमारा सुझाव है कि आप सबसे पहले Content-Security-Policy की जगह Content-Security-Policy-Report-Only हेडर सेट करके, अपनी नीतियों की जांच करें. हेडर उल्लंघनों की रिपोर्ट करता है, लेकिन फिर भी उन्हें पेज पर रहने देता है.