Content Security Policy और आपका CMP: CSP और सहमति को साथ काम कराना

दो सुरक्षा परतें जिन्हें सहमत होना होगा

Content Security Policy (CSP) ब्राउज़र को बताती है कि कोई पेज किन स्रोतों से स्क्रिप्ट, स्टाइल, इमेज, फ़्रेम और नेटवर्क अनुरोध लोड कर सकता है। सहमति प्रबंधन प्लेटफ़ॉर्म इसका उलटा काम करता है: वह उपयोगकर्ता की पसंद के आधार पर तय करता है कि उन स्क्रिप्ट में से कौन-सी चलने दी जाएँ। जब दोनों अलग-अलग कॉन्फ़िगर किए जाते हैं, तो वे टकराते हैं। CMP लोड नहीं हो पाता क्योंकि CSP उसे रोक देती है, या CMP और विज्ञापन टैग को समायोजित करने के लिए CSP इतनी ढीली कर दी जाती है कि वह कुछ भी सुरक्षित नहीं रखती।

यह गाइड बताती है कि CMP को आमतौर पर किन CSP डायरेक्टिव की ज़रूरत होती है, स्क्रिप्ट इंजेक्शन के साथ नॉन्स कैसे काम करते हैं, और अपने बैनर को तोड़े बिना बदलाव कैसे रोलआउट करें।

CMP को आमतौर पर CSP से क्या चाहिए

सटीक आवश्यकताएँ विक्रेता पर निर्भर करती हैं, इसलिए हमेशा अपने CMP के अपने दस्तावेज़ों से शुरू करें। सामान्यतः इन डायरेक्टिव को जाँचें:

TCF साइटों पर याद रखें कि CMP पेज पर __tcfapiLocator नाम का लोकेटर फ़्रेम भी बनाता है। वह फ़्रेम बिना दूरस्थ स्रोत के बनाया जाता है, इसलिए आमतौर पर उसे frame-src प्रविष्टि की ज़रूरत नहीं होती, फिर भी परीक्षण में इसकी पुष्टि करना उचित है।

इनलाइन स्टब की समस्या

अधिकांश CMP आपसे पेज के हेड में एक छोटी इनलाइन स्क्रिप्ट — स्टब — रखने को कहते हैं, ताकि मुख्य CMP के लोड होने से पहले अन्य स्क्रिप्ट कॉल कतार में रख सकें। सख्त CSP इनलाइन स्क्रिप्ट को तब तक रोकती है जब तक आप उन्हें स्पष्ट रूप से अनुमति न दें। आपके पास तीन विकल्प हैं:

  1. नॉन्स। हर प्रतिक्रिया के लिए एक यादृच्छिक मान बनाएँ, उसे CSP हेडर में 'nonce-...' के रूप में और स्टब के <script> टैग में जोड़ें। गतिशील पेजों के लिए यह सबसे लचीला विकल्प है।
  2. हैश। स्टब की सटीक सामग्री का SHA-256 हैश script-src में जोड़ें। यह स्थिर साइटों पर अच्छा काम करता है, लेकिन स्टब में कोई भी बदलाव, यहाँ तक कि खाली स्थान भी, इसे तोड़ देता है।
  3. स्टब को सेल्फ-होस्ट करना, अपने डोमेन पर बाहरी फ़ाइल के रूप में, जो 'self' से कवर हो। इसमें यह सुनिश्चित करने की सावधानी चाहिए कि वह पर्याप्त जल्दी लोड हो।

शॉर्टकट के रूप में 'unsafe-inline' से बचें। यह हर इनलाइन स्क्रिप्ट की अनुमति देता है, जिससे CSP की अधिकांश सुरक्षा समाप्त हो जाती है।

नॉन्स और CMP द्वारा इंजेक्ट की गई स्क्रिप्ट

जो CMP सहमति मिलने तक स्क्रिप्ट रोकता है, वह अक्सर उन्हें रोककर रखकर और बाद में इंजेक्ट करके काम करता है। नॉन्स-आधारित CSP में उन इंजेक्ट की गई स्क्रिप्ट को भी अनुमति चाहिए। दो आम तरीके हैं:

टैग मैनेजर भी यही प्रश्न उठाते हैं। यदि आप विज्ञापन और एनालिटिक्स टैग किसी टैग मैनेजर से लोड करते हैं, तो नॉन्स पर उसके दस्तावेज़ों का पालन करें और सुनिश्चित करें कि CMP और टैग मैनेजर एकरूप तरीका अपनाएँ।

विज्ञापन टैग CSP को कठिन बनाते हैं

प्रोग्रामेटिक विज्ञापन कई डोमेन से स्क्रिप्ट और फ़्रेम लोड करता है, और सूची तब बदलती है जब डिमांड पार्टनर बदलते हैं। प्रकाशक आमतौर पर दो में से एक विकल्प चुनते हैं:

जो भी हो, CMP स्पष्ट अनुमति सूची में होना चाहिए, केवल वाइल्डकार्ड से कवर नहीं, ताकि CSP में कोई बदलाव कभी चुपचाप बैनर को निष्क्रिय न कर दे।

रिपोर्ट-ओनली मोड से रोलआउट करें

पहले Content-Security-Policy-Report-Only हेडर का उपयोग करें। ब्राउज़र बिना कुछ रोके उल्लंघन रिपोर्ट करता है, ताकि आप देख सकें कि नई नीति क्या तोड़ेगी।

  1. नीति को रिपोर्टिंग एंडपॉइंट के साथ रिपोर्ट-ओनली मोड में डिप्लॉय करें।
  2. साफ़ ब्राउज़र प्रोफ़ाइल में पेज लोड करें और पूरा सहमति प्रवाह चलाएँ: पहली विज़िट, सभी स्वीकार करें, सभी अस्वीकार करें, कस्टम चयन, वापसी।
  3. उल्लंघन रिपोर्ट और ब्राउज़र कंसोल में रोके गए CMP संसाधनों की समीक्षा करें।
  4. नीति समायोजित करें, फिर प्रवर्तन पर स्विच करें।
  5. प्रवर्तन के बाद भी रिपोर्टिंग चालू रखें ताकि प्रतिगमन पकड़े जा सकें।

CSP टकराव के लक्षण

मुख्य बातें

← ब्लaderegistrdelays delays सभी पढ़ें →