मेनिफ़ेस्ट - सैंडबॉक्स

यह नीति, एक्सटेंशन के ऐसे पेजों के कलेक्शन के बारे में बताती है जिन्हें सैंडबॉक्स यूनीक ऑरिजिन में दिखाया जाना है. किसी एक्सटेंशन के सैंडबॉक्स किए गए पेजों में इस्तेमाल की जाने वाली कॉन्टेंट की सुरक्षा नीति के बारे में "content_security_policy" कुंजी में बताया गया है.

सैंडबॉक्स में होने के दो प्रभाव होते हैं:

  1. सैंडबॉक्स किए गए पेज के पास एक्सटेंशन एपीआई का ऐक्सेस नहीं होगा. इसके अलावा, सैंडबॉक्स नहीं किए गए पेजों का सीधा ऐक्सेस नहीं होगा (यह postMessage() का इस्तेमाल करके उनसे संपर्क कर सकता है).
  2. सैंडबॉक्स किए गए पेज पर, कॉन्टेंट की सुरक्षा के बारे में नीति (सीएसपी) लागू नहीं होती, जिसका इस्तेमाल बाकी एक्सटेंशन में किया जाता है. इसकी अपनी अलग सीएसपी वैल्यू होती है. उदाहरण के लिए, इसका मतलब है कि यह इनलाइन स्क्रिप्ट और eval() का इस्तेमाल कर सकती है.

उदाहरण के लिए, यहां यह तय करने का तरीका बताया गया है कि कस्टम सीएसपी वाले सैंडबॉक्स में दो एक्सटेंशन पेज दिखाए जाएं:

{
  ...
  "content_security_policy": {
    "sandbox": "sandbox allow-scripts; script-src 'self' https://example.com"
  },
  "sandbox": {
    "pages": [
      "page1.html",
      "directory/page2.html"
    ]
  },
  ...
}

अगर इसके बारे में नहीं बताया गया है, तो "content_security_policy" की डिफ़ॉल्ट वैल्यू sandbox allow-scripts allow-forms allow-popups allow-modals; script-src 'self' 'unsafe-inline' 'unsafe-eval'; child-src 'self'; होती है.

सैंडबॉक्स को रोकने के लिए, सीएसपी वैल्यू तय की जा सकती है. हालांकि, इसमें "sandbox" डायरेक्टिव शामिल होना चाहिए और allow-same-origin टोकन नहीं होना चाहिए. सैंडबॉक्स टोकन के बारे में जानने के लिए, HTML5 की खास जानकारी देखें.

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

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