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

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

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

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

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

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

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

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

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

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

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

يؤثر هذا على أي صفحة تستخدم حاليًا واجهة برمجة التطبيقات للموقع الجغرافي من الصفحات المعروضة عبر 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، يُرجى نقل الصفحات التي تجري طلبات بيانات من واجهة برمجة تطبيقات الموقع الجغرافي إلى HTTPS، مع التأكد من استخدامها في سياق آمن.

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