टाइमर को क्रॉस ऑरिजिन आइसोलेशन की पाबंदियों के साथ अलाइन करना

वर्शन 91 से पहले टाइमर रिज़ॉल्यूशन डेस्कटॉप पर, पांच माइक्रोसेकंड तक सीमित थे. इसमें साइट-आइसोलेशन चालू और Android पर 100 माइक्रोसेकंड तक सीमित था, जहां यह नहीं होता.

खास जानकारी में बदलाव के बाद, वर्शन 91 से Chrome, सभी प्लैटफ़ॉर्म पर अश्लील टाइमर (performance.now(), performance.timeOrigin, और DOMHighResTimestamps को दिखाने वाले अन्य परफ़ॉर्मेंस एपीआई) के रिज़ॉल्यूशन को सीमित कर देगा. क्रॉस-ऑरिजिन आइसोलेशन को चालू करके, वेबसाइटें पांच माइक्रोसेकंड तक की पाबंदी को कम कर सकती हैं, भले ही प्लैटफ़ॉर्म कुछ भी हो.

क्रॉस-ऑरिजिन आइसोलेशन को चालू करके ज़्यादा बेहतर सुविधाएं पाना, SharedArrayBuffer पर अपनाया गया यही तरीका है. क्रॉस-ऑरिजिन आइसोलेशन ऐसी स्थिति है जिसमें किसी वेब पेज को ऑप्ट-इन किए गए ऑरिजिन से अलग कर दिया जाता है.

क्या मुझे इस बारे में कुछ करना होगा?

शायद नहीं. performance.now() को दूसरे ब्राउज़र में काफ़ी ज़्यादा रिज़ॉल्यूशन तक सीमित कर दिया गया है (उदाहरण के लिए, 1 मिलीसेकंड = 0.001 सेकंड), इसलिए आपको मौजूदा रिज़ॉल्यूशन पर भरोसा नहीं करना चाहिए.

साथ ही, अगर आपको टाइमर के लिए बेहतर रिज़ॉल्यूशन का फ़ायदा चाहिए, जैसे कि परफ़ॉर्मेंस के ज़्यादा सटीक मेज़रमेंट के लिए, तो आपको यह पक्का करना होगा कि आपकी साइट क्रॉस-ऑरिजिन आइसोलेटेड हो. इससे आपको Chrome और Chromium पर काम करने वाले दूसरे ब्राउज़र के साथ-साथ Firefox, दोनों में बेहतर रिज़ॉल्यूशन मिलेगा.

क्रॉस-ऑरिजिन आइसोलेशन के साथ टाइमर को क्या करना है?

ब्राउज़र वेंडर ने टाइमर को ज़्यादा सटीक रिज़ॉल्यूशन तक सीमित करने का फ़ैसला लिया. साथ ही, Spectre का पता चलने के बाद, SharedArrayBuffers की उपलब्धता को सीमित करने का फ़ैसला लिया गया, जिन्हें इंप्लिसिट टाइमर के तौर पर इस्तेमाल किया जा सकता है. इसकी वजह यह है कि स्पेक्टर और अनुमान पर आधारित इसी तरह के हमले. कुछ कार्रवाइयों में लगने वाले समय का पता लगाने के लिए टाइमर की मदद लेते हैं और फिर प्रोसेस की मेमोरी का अंदाज़ा लगाते हैं.

अनुमान पर निशाना लगाने वाले हमलों को सामान्य टाइमर के साथ चलाया जा सकता है, लेकिन हाई रिज़ॉल्यूशन वाले टाइमर के इस्तेमाल की रफ़्तार बढ़ सकती है. Chrome ने जोखिम को कम करने और उन सुविधाओं को फिर से चालू करने के लिए, अपने साइट-आइसोलेशन आर्किटेक्चर के साथ-साथ अन्य सिस्टम का भी इस्तेमाल किया. हालांकि, इसे सिर्फ़ डेस्कटॉप प्लैटफ़ॉर्म और Chromium ब्राउज़र तक ही सीमित रखा गया है. एपीआई को ब्राउज़र आर्किटेक्चर पर निर्भर करना ज़्यादा सही नहीं है.

क्रॉस-ऑरिजिन आइसोलेशन, ब्राउज़र को किसी आइसोलेटेड एनवायरमेंट में पेज चलाने के लिए स्टैंडर्ड बेसलाइन देता है, ताकि वे अनचाहे क्रॉस-ऑरिजिन संसाधनों को लोड नहीं कर पाएं. इससे, ब्राउज़र को स्पेक्टर का खतरा नहीं होगा. क्रॉस-ऑरिजिन आइसोलेशन की मदद से, अब हम पेजों को हाई रिज़ॉल्यूशन टाइमर, SharedArrayBuffer, और ऐसे अन्य एपीआई को ऐक्सेस करने की अनुमति दे सकते हैं जो आर्बिट्रेरी क्रॉस-ऑरिजिन डेटा पढ़ने वाली प्रोसेस में असुरक्षित हैं.

इस बदलाव की वजह के बारे में ज़्यादा जानने के लिए, बेहतर सुविधाओं के लिए, आपको "क्रॉस-ऑरिजिन आइसोलेटेड" की ज़रूरत क्यों है लेख पढ़ें.

Unsplash पर लिंडा पेरेज़ योहानसन की कवर फ़ोटो.