बैकग्राउंड
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 रिपॉज़िटरी में कोई समस्या दर्ज करें.