मेनिफ़ेस्ट - कॉन्टेंट की सुरक्षा के बारे में नीति

एक वैकल्पिक मेनिफ़ेस्ट कुंजी, जिसमें वेब प्लैटफ़ॉर्म कॉन्टेंट की सुरक्षा नीति शामिल होती है. इस कुंजी से एक्सटेंशन में इस्तेमाल की जा सकने वाली स्क्रिप्ट, स्टाइल, और दूसरे संसाधनों पर लगने वाली पाबंदियों के बारे में पता चलता है. इस मेनिफ़ेस्ट कुंजी में, एक्सटेंशन पेजों और सैंडबॉक्स किए गए एक्सटेंशन पेज, दोनों के लिए अलग-अलग वैकल्पिक नीतियां तय की जा सकती हैं.

"एक्सटेंशन पेज" नीति, एक्सटेंशन में पेज और वर्कर कॉन्टेक्स्ट पर लागू होती है. इसमें एक्सटेंशन पॉप-अप, बैकग्राउंड वर्कर, और एचटीएमएल पेज या iframe वाले टैब शामिल होंगे जिन्हें एक्सटेंशन की मदद से खोला गया था. सैंडबॉक्स की नीति, मेनिफ़ेस्ट में सैंडबॉक्स पेज के तौर पर बताए गए सभी पेजों पर लागू होती है.

डिफ़ॉल्ट नीति

अगर मेनिफ़ेस्ट में उपयोगकर्ता ने कॉन्टेंट की सुरक्षा नीति के बारे में नहीं बताया है, तो एक्सटेंशन पेजों और सैंडबॉक्स किए गए एक्सटेंशन पेजों, दोनों के लिए डिफ़ॉल्ट प्रॉपर्टी का इस्तेमाल किया जाएगा.

ये डिफ़ॉल्ट सेटिंग, आपके मेनिफ़ेस्ट में इन नीतियों को तय करने के बराबर होती हैं:

{
  // ...
  "content_security_policy": {
    "extension_pages": "script-src 'self'; object-src 'self';",
    "sandbox": "sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self';"
  }
  // ...
}

इस मामले में, एक्सटेंशन अपने पैकेज वाले संसाधनों से सिर्फ़ लोकल स्क्रिप्ट और ऑब्जेक्ट को लोड करेगा. WebAssembly बंद कर दिया जाएगा. साथ ही, एक्सटेंशन इनलाइन JavaScript को नहीं चलाएगा या यह स्ट्रिंग का आकलन एक्ज़ीक्यूटेबल कोड के तौर पर कर सकेगा. अगर कोई सैंडबॉक्स पेज जोड़ा गया है, तो उसके पास एक्सटेंशन के बाहर से स्क्रिप्ट की जांच करने की ज़्यादा आसान अनुमतियां होंगी.

कम से कम और ज़रूरत के मुताबिक कॉन्टेंट की सुरक्षा से जुड़ी नीतियां

डेवलपर अपने प्रोजेक्ट की ज़रूरतों को पूरा करने के लिए, अपने एक्सटेंशन के नियम जोड़ या हटा सकते हैं. इसके अलावा, वे कॉन्टेंट की सुरक्षा के लिए कम से कम ज़रूरी नीति का भी इस्तेमाल कर सकते हैं.

एक्सटेंशन पेजों से जुड़ी नीति

Chrome, एक्सटेंशन पेजों के लिए कॉन्टेंट की सुरक्षा के लिए एक सबसे कम सुरक्षा नीति लागू करता है. यह अपने मेनिफ़ेस्ट में इस नीति को तय करने के बराबर है:

{
  // ...
  "content_security_policy": {
    "extension_pages": "script-src 'self' 'wasm-unsafe-eval'; object-src 'self';"
  }
  // ...
}

extension_pages नीति में, इस कम से कम वैल्यू से ज़्यादा छूट नहीं दी जा सकती. दूसरे शब्दों में, निर्देशों में अन्य स्क्रिप्ट सोर्स नहीं जोड़े जा सकते. जैसे, script-src में 'unsafe-eval' जोड़ना. अगर आपके एक्सटेंशन की नीति में कोई ऐसा सोर्स जोड़ा जाता है जिसकी अनुमति नहीं है, तो इंस्टॉल के समय Chrome इस तरह की गड़बड़ी दिखाएगा:

'content_security_policy.extension_pages': Insecure CSP value "'unsafe-eval'" in directive 'script-src'.

सैंडबॉक्स पेजों से जुड़ी नीति

सैंडबॉक्स किए गए पेजों के लिए डिफ़ॉल्ट नीति, एक्सटेंशन पेजों की तुलना में ज़्यादा बेहतर है. इसकी वजह यह है कि सैंडबॉक्स पेज के पास, एक्सटेंशन एपीआई का या सीधे तौर पर सैंडबॉक्स नहीं किए गए पेजों का ऐक्सेस नहीं होता. सैंडबॉक्स कॉन्टेंट की सुरक्षा नीति को ज़रूरत के मुताबिक बनाया जा सकता है.