Chrome 50 में असुरक्षित ऑरिजिन से जियोलोकेशन एपीआई हटाया गया

Chrome का पब्लिक इंटेंट है का इस्तेमाल बंद करने के लिए किया जा सकता है. उन्हें उम्मीद है कि दूसरे लोग भी इसका इस्तेमाल करेंगे.

Chrome 50 और उसके बाद के वर्शन में, Chrome अब उपयोगकर्ता की जगह की जानकारी पाने की सुविधा नहीं देता HTML5 Geolocation API का इस्तेमाल करके जो असुरक्षित कनेक्शन से डिलीवर किए गए पेजों से मिलते-जुलते हों. इसका मतलब है कि जिस पेज पर Geolocation API कॉल करने के लिए, किसी सुरक्षित कॉन्टेक्स्ट का इस्तेमाल किया जाना चाहिए. जैसे, एचटीटीपीएस.

यह एक अहम समस्या है, क्योंकि इसका असर ऐसी किसी भी साइट पर सीधे तौर पर पड़ेगा जिसे इस्तेमाल करने की ज़रूरत है के भौगोलिक स्थान API का उपयोग कर रहे हैं और उसे https पर प्रस्तुत नहीं किया जाता है, लेकिन यह एक ऐसा बदलाव है जो हम के बारे में ज़्यादा जानें. इस पोस्ट से आपको मदद मिलेगी तर्क को समझें और आगे बढ़ने का तरीका जानें.

नाम कब बदलेगा?

यह बदलाव Chrome 50 (20 अप्रैल, 2016 को दोपहर 12 बजे पीएसटी) से लागू होगा.

Chrome का डेवलपर टूल कंसोल, वर्शन 44 से चेतावनियां दे रहा है (21 जुलाई, 2015 को जारी किया गया).
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है ऐसे कई सार्वजनिक एलान किए गए हैं जिनमें बताई गई वजहों के बारे में बताया है (और चर्चा करें) कि हम यह बदलाव क्यों कर रहे हैं:

ऐसे कई दूसरे सोर्स भी हैं जिन्होंने इसे हाइलाइट किया है: Mobiforge (26 जनवरी, 2016), वायर्ड (17 मार्च, 2016), VentureBeat (13 अप्रैल, 2016).

हम यह परिवर्तन क्यों कर रहे हैं?

जगह की जानकारी संवेदनशील है! निजता की सुरक्षा के लिए, एचटीटीपीएस को ज़रूरी करना ज़रूरी है उपयोगकर्ताओं ने जगह की जानकारी का डेटा. अगर उपयोगकर्ता की जगह की जानकारी किसी सुरक्षित नहीं है, तो नेटवर्क पर मौजूद हमलावर यह जान पाएंगे कि उपयोगकर्ता है. इससे उपयोगकर्ता की निजता को गंभीरता से खतरा होता है.

यह किसे प्रभावित करता है?

इसका असर उन सभी पेजों पर पड़ता है जो फ़िलहाल Geolocation API का इस्तेमाल कर रहे हैं HTTP पर दिखाए गए पेजों से (गैर-सुरक्षित). इससे उन एचटीटीपीएस iframe पर भी असर पड़ता है जो जियोलोकेशन एपीआई को एचटीटीपी पेजों में एम्बेड किया जा सकता है. (आप इनका इस्तेमाल नहीं कर पाएंगे पॉलीफ़िल को शेयर किए गए एचटीटीपीएस से डिलीवर किए गए फ़्रेम का इस्तेमाल करके.)

क्या मेरे पूरे वेब ऐप्लिकेशन को एचटीटीपीएस की ज़रूरत है?

इस्तेमाल करने के लिए, पूरे ऐप्लिकेशन को एचटीटीपीएस से इस्तेमाल करना ज़रूरी नहीं है जियोलोकेशन. केवल भौगोलिक-स्थान का उपयोग करने वाले पृष्ठों को सुरक्षित साइट पर दिखाया जाना चाहिए संदर्भ. फ़िलहाल, सुरक्षित कॉन्टेक्स्ट वह होता है जिसे टॉप लेवल पर होस्ट किया जाता है एचटीटीपीएस या लोकलहोस्ट. उदाहरण के लिए, एक iframe जो एक सुरक्षित ऑरिजिन की ओर इशारा करता है लेकिन असुरक्षित ऑरिजिन (http ://paul.kinlan.me/) पर होस्ट किया गया भौगोलिक स्थान API को कॉल करने की अनुमति नहीं दी जाएगी.

हमारा सुझाव है कि आप एचटीटीपीएस पर माइग्रेट करके नए और मौजूदा बेहतर टूल के तौर पर माइग्रेट करें ब्राउज़र की सुविधाओं के लिए सुरक्षित ऑरिजिन की ज़रूरत होती है.

क्या इससे लोकल डेवलपमेंट पर असर पड़ता है?

Localhost को "संभावित रूप से सुरक्षित" के तौर पर एलान नहीं किया जाना चाहिए नियम के हिसाब से और हमारे मामले में जियोलोकेशन के अनुरोध को localhost से ऊपर के लेवल पर किया जाएगा अब भी काम करते रहेंगे.

क्या रनटाइम के दौरान यह पता लगाया जा सकता है कि किसी सुरक्षित कॉन्टेक्स्ट पर न होने की वजह से जियोलोकेशन को ब्लॉक किया गया है या नहीं

हां. जियोलोकेशन की जानकारी में PositionError के बारे में जानकारी मिलती है ऑब्जेक्ट है, जिसे Geolocation API के फ़ेलियर कॉलबैक में पास किया जाता है. ऑब्जेक्ट code और message प्रॉपर्टी के बारे में बताता है.

सुरक्षा से जुड़ी इस समस्या की वजह से गड़बड़ियां होने पर, 1 में से code दिखेगा. यह "अनुमति न मिलने से जुड़ी गड़बड़ी" है. आपको यह गड़बड़ी तब दिख सकती है, जब कोई उपयोगकर्ता ऐक्सेस अस्वीकार कर देता है या सिस्टम ने उपयोगकर्ता के ऐक्सेस को अस्वीकार कर दिया है जगहें. इसका मतलब है कि आपको मैसेज की जांच करके यह पता करना होगा कि असल में क्या वजह थी.

यह बहुत नाज़ुक हो सकता है, क्योंकि आने वाले समय में इसमें बदलाव हो सकता है. हालांकि, इससे हमें साफ़ तौर पर पता चलता है कि कॉन्टेंट से जुड़ी एक असुरक्षित समस्या "सिर्फ़ सुरक्षित ऑरिजिन की अनुमति है" स्ट्रिंग को ढूंढना है.

navigator.geolocation.getCurrentPosition(success => {
    /* Do some magic. */
}, failure => {
    if (failure.message.startsWith("Only secure origins are allowed")) {
    // Secure Origin issue.
    }
});

याद रखें कि आपके पास सिर्फ़ पेज के ऑरिजिन की जांच करने का विकल्प नहीं होता है. ऐसा इसलिए, क्योंकि आपका पेज एचटीटीपीएस पर हो सकता है, लेकिन इसके अंदर भी हो सकता है किसी असुरक्षित कॉन्टेक्स्ट से होस्ट किया गया iframe.

मुझे जियोलोकेशन का इस्तेमाल करना है; ऐसे में मुझे क्या करना चाहिए?

अगर आपको HTML5 Geolocation API का इस्तेमाल करना है या आपकी साइट पहले से ही Geolocation API का इस्तेमाल नहीं कर सकते, कृपया जियोलोकेशन एपीआई कॉल करने वाले पेजों को एचटीटीपीएस पर माइग्रेट करें, यह पक्का करना होगा कि उनका इस्तेमाल सुरक्षित तरीके से किया जाए.

उपयोगकर्ता की जगह की जानकारी पाने के लिए, कई फ़ॉलबैक विकल्प उपलब्ध हैं इन बदलावों का असर Google Maps Geolocation API पर नहीं होगा, GeoIP (उदाहरण के लिए, और पिन कोड डालने होंगे. हालांकि, हम खास तौर पर यह सुझाव दें कि जियोलोकेशन का ऐक्सेस बनाए रखने के लिए सबसे सही पाथ को एचटीटीपीएस पर ले जाना है.