Chrome के 91 वर्शन से पहले, साइट आइसोलेशन की सुविधा चालू होने पर, डेस्कटॉप पर टाइमर रिज़ॉल्यूशन की सीमा पांच माइक्रोसेकंड तक थी. वहीं, इस सुविधा के बंद होने पर, Android पर 100 माइक्रोसेकंड तक की सीमा थी.
स्पेसिफ़िकेशन में बदलाव के बाद, Chrome के 91 वर्शन से, टाइमर (performance.now()
, performance.timeOrigin
, और DOMHighResTimestamps
को दिखाने वाले अन्य परफ़ॉर्मेंस एपीआई) के रिज़ॉल्यूशन को सभी प्लैटफ़ॉर्म पर 100 माइक्रोसेकंड तक सीमित कर दिया जाएगा.
क्रॉस-ऑरिजिन आइसोलेशन को चालू करके, वेबसाइटें इस पाबंदी को 5 माइक्रोसेकंड तक कम कर सकती हैं. ऐसा किसी भी प्लैटफ़ॉर्म पर किया जा सकता है.
क्रॉस-ऑरिजिन आइसोलेशन को चालू करके ज़्यादा बेहतर सुविधाएं पाने का तरीका, SharedArrayBuffer
पर इस्तेमाल किए जाने वाले तरीके से मिलता-जुलता है.
क्रॉस-ऑरिजिन आइसोलेशन एक ऐसी स्थिति है जहां किसी वेब पेज को ऑप्ट-इन किए गए ऑरिजिन को छोड़कर, अन्य ऑरिजिन से अलग रखा जाता है.
क्या मुझे इसके लिए कुछ करना होगा?
शायद नहीं. performance.now()
को दूसरे ब्राउज़र में, ज़्यादा बारीक रिज़ॉल्यूशन (उदाहरण के लिए, 1 मिलीसेकंड = 0.001 सेकंड) तक सीमित किया गया है. इसलिए, आपको मौजूदा रिज़ॉल्यूशन पर भरोसा नहीं करना चाहिए.
साथ ही, अगर आपको अपने टाइमर के लिए ज़्यादा रिज़ॉल्यूशन का फ़ायदा लेना है, तो आपको यह पक्का करना होगा कि आपकी साइट क्रॉस-ऑरिजिन से अलग हो. उदाहरण के लिए, परफ़ॉर्मेंस को ज़्यादा सटीक तरीके से मेज़र करने के लिए. इससे आपको Chrome और क्रोमियम पर काम करने वाले दूसरे ब्राउज़र के साथ-साथ, Firefox में भी बेहतर रिज़ॉल्यूशन मिलेगा.
टाइमर का क्रॉस-ऑरिजिन आइसोलेशन से क्या लेना-देना है?
Spectre का पता चलने के बाद, ब्राउज़र वेंडर ने टाइमर को ज़्यादा बारीक रिज़ॉल्यूशन तक सीमित करने का फ़ैसला लिया. साथ ही, उन्होंने SharedArrayBuffers की उपलब्धता को भी सीमित कर दिया, ताकि उनका इस्तेमाल, इंप्लिसिट टाइमर के तौर पर न किया जा सके. ऐसा इसलिए है, क्योंकि Spectre और इसी तरह के अन्य स्पकुलेटिव एक्ज़ीक्यूशन अटैक, कुछ खास कार्रवाइयों में लगने वाले समय को मेज़र करने के लिए टाइमर पर निर्भर करते हैं. इसके बाद, वे प्रोसेस की मेमोरी के कॉन्टेंट का अनुमान लगाते हैं.
अनुमानित तरीके से प्रोसेस करने से जुड़े हमले, कम रिज़ॉल्यूशन वाले टाइमर की मदद से किए जा सकते हैं. हालांकि, ज़्यादा रिज़ॉल्यूशन वाले टाइमर से इन हमलों की स्पीड बढ़ सकती है. Chrome ने साइट आइसोलेशन आर्किटेक्चर के साथ-साथ, अन्य तंत्रों का इस्तेमाल करके, जोखिम को कम किया और उन सुविधाओं को फिर से चालू किया. हालांकि, यह सुविधा सिर्फ़ डेस्कटॉप प्लैटफ़ॉर्म और Chromium ब्राउज़र पर उपलब्ध है. ब्राउज़र के आर्किटेक्चर पर निर्भर एपीआई का इस्तेमाल करना सही नहीं है.
क्रॉस-ऑरिजिन आइसोलेशन की सुविधा, ब्राउज़र को अलग-अलग एनवायरमेंट में पेज चलाने के लिए स्टैंडर्ड बेसलाइन उपलब्ध कराती है. इससे, वे अनचाहे क्रॉस-ऑरिजिन रिसॉर्स लोड नहीं कर पाते. इसलिए, उन्हें Spectre से कोई खतरा नहीं होता.
क्रॉस-ऑरिजिन आइसोलेशन की मदद से, अब हम पेजों को हाई रिज़ॉल्यूशन वाले टाइमर, SharedArrayBuffer
, और अन्य एपीआई ऐक्सेस करने की अनुमति दे सकते हैं. ये ऐसे एपीआई होते हैं जिन्हें ऐसी प्रोसेस में एक्सपोज़ करना असुरक्षित होता है जो क्रॉस-ऑरिजिन डेटा को पढ़ सकती हैं.
इस बदलाव के बारे में ज़्यादा जानने के लिए, पढ़ें कि बेहतर सुविधाओं के लिए, आपको "क्रॉस-ऑरिजिन आइसोलेट" की ज़रूरत क्यों है.
Unsplash पर लिंडा पेरेज़ जोहान्सन की दी गई कवर फ़ोटो.