निजी नेटवर्क ऐक्सेस की अनुमति के अनुरोध का ऑरिजिन ट्रायल: वेबसाइटों को एचटीटीपीएस पर माइग्रेट करने का पाथ

Yifan Luo
Yifan Luo

बैकग्राउंड

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 तक के ऑरिजिन ट्रायल के तौर पर उपलब्ध करा रहे हैं.

ऑरिजिन ट्रायल के लिए रजिस्टर करें, ताकि आपकी वेबसाइट अनुमति के अनुरोध का इस्तेमाल कर सके:

  1. अपने ऑरिजिन के लिए टोकन का अनुरोध करें.
  2. इनमें से किसी एक तरीके से टोकन का इस्तेमाल करें:
    • आपके एचटीएमएल में: 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 रिपॉज़िटरी में कोई समस्या दर्ज करें.

रिसॉर्स