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

चेतावनी: वर्शन 57 से Chrome, सैंडबॉक्स किए गए पेजों में बाहरी वेब कॉन्टेंट को अनुमति नहीं देगा. इसमें, एम्बेड किए गए फ़्रेम और स्क्रिप्ट भी शामिल हैं. इसके बजाय, कृपया webview का इस्तेमाल करें.

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

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

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

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

    अगर इसके बारे में कोई जानकारी नहीं दी गई है, तो 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 सोर्स फ़ाइलें) के लिए इस्तेमाल किए जाने वाले रिसॉर्स को sandboxed_page सूची में दिखाने की ज़रूरत नहीं होती. वे उस पेज के सैंडबॉक्स का इस्तेमाल करेंगे जहां वे एम्बेड किए गए हैं.

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

सैंडबॉक्स किए गए पेज की जानकारी, सिर्फ़ manifest_version 2 या इसके बाद के वर्शन का इस्तेमाल करते समय दी जा सकती है.