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

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

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

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

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

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

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

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

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

    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, ऐसे बाहरी संसाधन लोड कर सकते हैं जिनकी अनुमति सीएसपी से नहीं मिल सकती. एक ही डोमेन के iframe, टॉप लेवल विंडो के CSP को इनहेरिट करते हैं. साथ ही, GPT क्रिएटिव के कॉन्टेंट को कंट्रोल नहीं कर सकता. इसलिए, एक ही डोमेन के क्रिएटिव, आम तौर पर CSP हेडर के साथ सही तरीके से काम नहीं करेंगे.

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

    <!doctype html>
    <html>
     
    <head>
       
    <meta charset="utf-8">
       
    <title>Hello GPT</title>
       
    <script src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" nonce="KC7tcz53FHqumKP1" async></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 हेडर सेट करें. हेडर में नीति के उल्लंघनों की शिकायत की गई है, लेकिन पेज पर उन्हें दिखाने की अनुमति दी गई है.