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

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

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

  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 टोकन न हो. सैंडबॉक्स के संभावित टोकन के लिए, एचटीएमएल5 स्पेसिफ़िकेशन देखें. इसके अलावा, हो सकता है कि आपने जो सीएसपी तय किया है वह सैंडबॉक्स किए गए पेजों में बाहरी वेब कॉन्टेंट लोड करने की अनुमति न दे.

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

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

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