निजी नेटवर्क का ऐक्सेस: वेब वर्कर और नेविगेशन फ़ेच के लिए बेहतर सुरक्षा

Jonathan Hao
Jonathan Hao

निजी नेटवर्क का ऐक्सेस क्या है?

निजी नेटवर्क का ऐक्सेस (पीएनए, जिसे पहले सीओआरएस-आरएफ़सी1918 और लोकल नेटवर्क का ऐक्सेस कहा जाता था) एक सुरक्षा सुविधा है. यह वेबसाइटों को निजी नेटवर्क पर सर्वर को अनुरोध भेजने से रोकती है. इससे उपयोगकर्ताओं और इंटरनल नेटवर्क को, किसी दूसरी साइट से किए गए फ़र्ज़ी अनुरोध (सीएसआरएफ़) जैसे संभावित हमलों से बचाने में मदद मिलती है. Chrome में पीएनए को धीरे-धीरे लागू किया जा रहा है. आने वाले समय में, इस सुविधा को और बेहतर बनाया जाएगा.

पीएनए की मुख्य सुरक्षाएं (उनकी मौजूदा स्थिति के साथ)

  • सुरक्षित कॉन्टेक्स्ट: सिर्फ़ सुरक्षित कॉन्टेक्स्ट को निजी नेटवर्क के सब-रिसॉर्स के लिए अनुरोध करने की अनुमति है. यह सुविधा, Chrome 94 से लागू है. ज़्यादा जानकारी के लिए, निजी नेटवर्क ऐक्सेस से जुड़ी अपडेट पोस्ट देखें.
  • प्रीफ़्लाइट अनुरोध: Chrome, निजी नेटवर्क सब-रिसॉर्स के अनुरोधों से पहले प्रीफ़्लाइट अनुरोध भेजता है, ताकि सर्वर की अनुमतियों की जांच की जा सके. Chrome 104 से, गड़बड़ी होने पर DevTools में चेतावनियां दिखती हैं. ये चेतावनियां Chrome 130 में लागू होंगी. इस बारे में निजी नेटवर्क ऐक्सेस: प्रीफ़्लाइट की सुविधा का एलान लेख में बताया गया था. Chrome 123 से, Chrome कुछ सीओआरएस हेडर को हटा देगा. जैसे, अगर प्रीफ़्लाइट सिर्फ़ पीएनए की वजह से बनाया और भेजा गया है, तो Accept.
  • एक ही ऑरिजिन से जुड़ी छूट: Chrome 115 से, भरोसेमंद ऑरिजिन से एक ही ऑरिजिन के अनुरोधों पर, पीएनए की पाबंदियां लागू नहीं होती हैं.

बेहतर सुरक्षा: वेब वर्कर्स

पीएनए की सुरक्षा, वेब वर्कर (डेडिकेटेड वर्कर, शेयर किए गए वर्कर, और सर्विस वर्कर) तक भी लागू होगी. इसमें इस तरह का कॉन्टेंट शामिल है:

  • वर्कर्स स्क्रिप्ट फ़ेच करना: कम सार्वजनिक आईपी पतों के लिए, सुरक्षित कॉन्टेक्स्ट और प्रीफ़्लाइट की ज़रूरत होती है. Chrome 110 से मिलने वाली चेतावनियां, जो Chrome 130 में लागू होंगी.
  • वर्कर्स स्क्रिप्ट से शुरू की गई फ़ेच: वर्कर्स स्क्रिप्ट से की जाने वाली सभी फ़ेच, पीएनए के एक ही नियमों का पालन करती हैं.

Chrome 124 से, नीति उल्लंघन ठीक करने के लिए उठाए गए कदमों की जांच करने के लिए, यह तरीका अपनाएं:

  • chrome://flags/#private-network-access-ignore-worker-errors बंद करें
  • chrome://flags/#private-network-access-respect-preflight-results सक्षम करें

बेहतर सुरक्षा: नेविगेशन फ़ेच

सीएसआरएफ़ हमलों में इनका इस्तेमाल होने की वजह से, नेविगेशन फ़ेच (iframes, पॉप-अप) पर भी पीएनए लागू होता है. Chrome 123 में, गड़बड़ियों के लिए चेतावनियां दिखने लगी हैं. Chrome 130 में, नीति उल्लंघन ठीक करने के तरीके लागू किए जाएंगे.

Chrome 124 से, एनफ़ोर्समेंट की जांच करने के लिए:

  • chrome://flags/#private-network-access-ignore-navigation-errors बंद करें
  • chrome://flags/#private-network-access-respect-preflight-results सक्षम करें

जब PNA किसी नेविगेशन अनुरोध को ब्लॉक करता है, तो उपयोगकर्ताओं को एक खास गड़बड़ी दिखेगी. साथ ही, उन्हें मैन्युअल रूप से रीलोड करने और अनुरोध को अनुमति देने का विकल्प भी दिखेगा.

जब PNA किसी नेविगेशन अनुरोध को ब्लॉक करता है, तो उपयोगकर्ताओं को एक खास गड़बड़ी दिखेगी. साथ ही, उन्हें मैन्युअल रूप से रीलोड करने और अनुरोध को अनुमति देने का विकल्प मिलेगा.
जब पीएनए किसी नेविगेशन अनुरोध को ब्लॉक करता है, तो उपयोगकर्ताओं को एक खास गड़बड़ी दिखेगी. साथ ही, उन्हें मैन्युअल रूप से रीलोड करने और अनुरोध को अनुमति देने का विकल्प मिलेगा.

अगर आपकी वेबसाइट पर असर पड़ा है, तो क्या करें?

निजी नेटवर्क ऐक्सेस: प्रीफ़्लाइट की सुविधा का एलान पोस्ट में इस बारे में दिशा-निर्देश दिए गए हैं. नेविगेशन के अनुरोधों के लिए, यह अहम है कि:

  • Access-Control-Allow-Origin, वाइल्डकार्ड ("*") नहीं हो सकता.
  • Access-Control-Allow-Credentials को "true" पर सेट किया जाना चाहिए.

आगे क्या करना है?

  • WebSockets: Chrome 126 में, PNA WebSocket हैंडशेक को कवर करेगा. पहले चेतावनियां दी जाएंगी.
  • पूरी तरह से लागू करना: Chrome 130 में, पीएनए की सभी पाबंदियां लागू की जाएंगी. साथ ही, नियमों का पालन न करने वाले अनुरोधों को ब्लॉक किया जाएगा. उपयोगकर्ताओं के पास, भरोसेमंद साइटों के लिए पीएनए को बदलने की साइट सेटिंग होगी.

निजी नेटवर्क के इस्तेमाल के उदाहरणों के लिए सुझाव/राय देना या शिकायत करना

अगर आपने निजी नेटवर्क पर कोई ऐसी वेबसाइट होस्ट की है जिसे सार्वजनिक नेटवर्क से अनुरोधों की ज़रूरत है, तो Chrome की टीम आपसे सुझाव/राय/शिकायत मांगती है! Chromium समस्या ट्रैकर (कॉम्पोनेंट: Blink>SecurityFeature>CORS>PrivateNetworkAccess) पर समस्या दर्ज करें.

Unsplash पर Jakub Żerdzicki की फ़ोटो