تمت إزالة Geolocation API من المصادر غير ��لآمنة في Chrome 50

Paul Kinlan
Paul Kinlan

يسعى Chrome بنيته العامة إلى إيقاف الميزات الفعّالة نهائيًا، مثل رصد الموقع الجغرافي على المصادر غير الآمنة، ونأمل أن يتم ذلك.

بدءًا من Chrome 50، لم يعد Chrome يتيح الحصول على موقع المستخدم باستخدام HTML5 Geolocation API من الصفحات التي يتم تقديمها عن طريق اتصالات غير آمنة. وهذا يعني أنّ الصفحة التي تطلب استدعاء واجهة برمجة التطبيقات Geolocation API يجب عرضها من سياق آمن مثل HTTPS.

إنّها مشكلة مهمة لأنّها ستؤثّر بشكل مباشر على أي موقع إلكتروني يتطلب استخدام واجهة برمجة تطبيقات رصد الموقع الجغرافي ولا يتم عرضه من خلال بروتوكول https، ولكنّه تغيير نعتقد أنّه مفيد لجميع مستخدمي الويب. ستساعدك هذه المشاركة في فهم السبب وكيفية المتابعة.

متى سيتمّ تطبيق هذا التغيير؟

يسري هذا التغيير اعتبارًا من إصدار Chrome 50 (12 ظهرًا بتوقيت المحيط الهادئ في 20 نيسان (أبريل) 2016).

تقدم وحدة تحكم أد��ات المطوّرين في Chrome تحذيرات منذ الإصدار 44 (تم طرحه في 21 تموز (يوليو) 2015).
تم إرسال عدد من الإشعارات العلنية التي تصف الأساس المنطقي (ومناقشة) لهذه التغييرات:

وقد أظهرت ذلك عدة مصادر أخرى: Mobiforge (26 من كانون الثاني (يناير) 2016)، Wired (17 آذار (مارس) 2016)، VentureBeat ( 13 نيسان (أبريل) 2016).

ما السبب الذي دعا إلى إجراء هذا التغيير؟

الموقع من البيانات الحساسة! يلزم طلب HTTPS لحماية خصوصية بيانات الموقع الجغرافي للمستخدمين. إذا كان الموقع الجغرافي للمستخدم متاحًا من سياق غير آمن، سيتمكّن المهاجمون على الشبكة من معرفة مكان هذا المستخدم، ما يعرّض خصوصية المستخدم للخطر بشكل خطير.

من سيتأثر بذلك؟

يؤثر ذلك في أي صفحة تستخدم حاليًا Geolocation API من الصفحات التي يتم عرضها عبر HTTP (غير آمن). ويؤثر ذلك أيضًا في إطارات iframe في HTTPS التي تستخدم واجهة برمجة التطبيقات Geolocation API إذا كانت مضمّنة في صفحات HTTP. (لن تتمكن من تعويض باستخدام إطار تسليمه HTTPS مشترك.)

هل يحتاج تطبيق الويب بأكمله إلى بروتوكول HTTPS؟

ليس شرطًا أن يتم عرض التطبيق بأكمله عبر HTTPS لاستخدام ميزة "رصد الموقع الجغرافي". ويجب أن يتم عرض الصفحات التي تستخدم ميزة رصد الموقع الجغرافي فقط ضمن سياق آمن. السياق الآمن هو حاليًا أي شيء تتم استضافته في المستوى الأعلى على HTTPS أو المضيف المحلي. على سبيل المثال، لن يُسمح لإطار iframe الذي يشير إلى مصدر آمن ولكنه مستضاف على مصدر غير آمن (http ://paul.kinlan.me/) بطلب واجهة برمجة تطبيقات رصد الموقع الجغرافي.

ننصحك بشدة بنقل البيانات إلى بروتوكول HTTPS لأنّ ميزات المتصفّح الجديدة والحالية والجديدة تتطلب مصادر آمنة.

هل يؤثر ذلك في التنمية المحلية؟

من المفترَض ألّا يكون قد تم الإعلان عن أنّ المضيف المحلي "يُحتمل أن يكون آمنًا" في المواصفات، وفي حالتنا هذه، ستظل طلبات رصد الموقع الجغرافي التي يتم عرضها على المستوى الأعلى مقارنةً بالمضيف المحلي صالحة.

هل يمكنني أن أرصد في وقت التشغيل ما إذا كان قد تم حظر رصد الموقع الجغرافي بسبب عدم كونه في سياق آمن؟

رائع تحدد مواصفات الموقع الجغرافي كائن PositionError الذي يتم تمريره إلى استدعاء الإخفاق في واجهات برمجة تطبيقات تحديد الموقع الجغرافي. يحدّد الكائن الخاصيتين code وmessage.

ستؤدي الأخطاء الناتجة عن مشكلة السياق الآمن هذه إلى عرض خطأ code من 1، ما يشير إلى "خطأ رفض الإذن". يمكنك ظهور هذا الخطأ عندما يرفض أحد المستخدمين الوصول أو عندما يرفض النظام الوصول إلى المواقع الجغرافية للمستخدم. هذا يعني أنّه عليك مراجعة الرسالة لمعرفة السبب الدقيق لذلك.

قد يكون هذا الأمر هشًا إلى حد ما حيث قد يتغير في المستقبل، ولكن هناك إشارة قوية إلى أنّ المشكلة كانت تمثل مشكلة محتوى غير آمن، وهي البحث عن السلسلة "يُسمح فقط بالمصادر الآمنة فقط".

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

تذكَّر أنّه لا يمكنك الاكتفاء بالتحقق من مصدر الصفحة لأنّ صفحتك قد تكون على بروتوكول https ولكنّها داخل إطار iframe مستضاف من سياق غير آمن.

أحتاج إلى استخدام ميزة رصد الموقع الجغرافي، فما الذي عليّ فعله؟

إذا كنت تريد استخدام HTML5 Geolocation API، أو إذا كان موقعك يستخدم حاليًا Geolocation API، يُرجى نقل الصفحات التي تطلب من واجهة برمجة التطبيقات Geolocation API إلى HTTPS، مع التأكّد من استخدامها في سياق آمن.

هناك عدد من الخيارات الاحتياطية المتاحة للحصول على موقع المستخدم الجغرافي والتي لا تتأثر بهذا التغيير، مثل واجهة برمجة التطبيقات للمواقع الجغرافية في "خرائط Google" وGeoIP (كمثال، هناك حلول أخرى مستندة إلى الموقع الجغرافي)، ورمز بريدي يُدخِله المستخدم. مع ذلك، ننصح بشدة بالانتقال إلى HTTPS لضمان الوصول المستمر إلى الموقع الجغرافي.