बैकग्राउंड
Chrome 94 में, असुरक्षित सार्वजनिक वेबसाइटों से निजी नेटवर्क को ऐक्सेस करने पर रोक लगाने की सुविधा जोड़ी गई है. असुरक्षित कॉन्टेक्स्ट से निजी नेटवर्क ऐक्सेस की सुविधा को बंद करने के लिए चल रहे ट्रायल से पता चला है कि जिन वेबसाइटों पर असर पड़ा है उन्हें एचटीटीपीएस पर माइग्रेट करने में समस्याएं आ रही हैं. निजी डिवाइसों को एचटीटीपीएस पर माइग्रेट करने में आने वाली समस्या एक आम समस्या है. इस वजह से, मिले-जुले कॉन्टेंट की जांच से जुड़े उल्लंघन होते हैं.
ऊपर बताए गए चैलेंज को हल करने के लिए, Chrome 120 से ऑरिजिन ट्रायल के तहत, अनुमति का नया प्रॉम्प्ट उपलब्ध है
नए विकल्प के तौर पर अनुमति का अनुरोध
फ़ेच करने के विकल्प के तौर पर नया targetAddressSpace
एट्रिब्यूट जोड़ने पर, अनुरोध में मिक्स किए गए कॉन्टेंट की जांच को छोड़ा जा सकेगा.
उदाहरण:
fetch("http://router.local/ping", {
targetAddressSpace: "private",
});
निजी नेटवर्क ऐक्सेस: प्रीफ़्लाइट की सुविधा के मुताबिक, निजी नेटवर्क के किसी भी अनुरोध से पहले, प्रीफ़्लाइट अनुरोध किया जाएगा. इस प्रीफ़्लाइट अनुरोध में एक नया हेडर, Access-Control-Request-Private-Network: true
शामिल होगा. साथ ही, उससे जुड़े रिस्पॉन्स में हेडर Access-Control-Allow-Private-Network: true
शामिल होना चाहिए.
अनुमति के लिए नए प्रॉम्प्ट को शामिल करने के लिए, हमें डिवाइसों में दो नए रिस्पॉन्स हेडर शामिल करने होंगे: Private-Network-Access-Name
और Private-Network-Access-ID
.
Private-Network-Access-Name: <some human-readable device name>
Private-Network-Access-ID: <the MAC address of the device>
उदाहरण:
Private-Network-Access-Name: "My Smart Toothbrush"
Private-Network-Access-ID: "01:23:45:67:89:0A"
Private-Network-Access-ID
: 48-बिट की वैल्यू, कोलन से अलग किए गए छह हेक्साडेसिमल बाइट के तौर पर दी जाती है.
Private-Network-Access-Name
: ECMAScript रेगुलर एक्सप्रेशन /^[a-z0-9_-.]+$/
से मैच करने वाली स्ट्रिंग के तौर पर मान्य नाम. नाम की लंबाई, 248 UTF-8 कोड यूनिट से ज़्यादा नहीं होनी चाहिए.
डेमो
डेमो देखने के लिए, यहां जाएं: https://private-network-access-permission-test.glitch.me/.
ऑरिजिन ट्रायल के लिए रजिस्टर करना
हम निजी नेटवर्क के ऐक्सेस की अनुमति के लिए प्रॉम्प्ट को, Chrome के 120 से 122 वर्शन में ऑरिजिन ट्रायल के तौर पर उपलब्ध करा रहे हैं. इससे डेवलपर को निजी नेटवर्क के ऐक्सेस के लिए, कॉन्टेक्स्ट से जुड़ी सुरक्षित पाबंदियां लागू करने में मदद मिलेगी.
अनुमति के अनुरोध का इस्तेमाल करने के लिए, ऑरिजिन ट्रायल के लिए रजिस्टर करें:
- अपने ऑरिजिन के लिए टोकन का अनुरोध करें.
- टोकन का इस्तेमाल इनमें से किसी एक तरीके से करें:
- अपने एचटीएमएल में:
html <meta http-equiv="Origin-Trial" content="TOKEN_GOES_HERE">
- अपने JavaScript में:
js const meta = document.createElement('meta'); meta.httpEquiv = 'Origin-Trial'; meta.content = 'TOKEN_GOES_HERE'; document.head.append(meta);
- एचटीटीपी हेडर में:
text Origin-Trial: TOKEN_GOES_HERE
- अपने एचटीएमएल में:
इस सुविधा के बारे में कोई सुझाव, शिकायत या राय देने के लिए, कृपया GitHub रिपॉज़िटरी में कोई समस्या दर्ज करें.