هذه المعلومات مُعدّة لمطوِّري البرامج الذين لديهم تطبيق يحتوي على الثغرة الأمنية "واجهة JavaScript الحساسة".
تحليل المشكلة
يُرجى الاطّلاع على الإشعار في أداة Play Console.
الإجراء المطلوب
- افتح إشعار Google Play المُرسل عبر البريد الإلكتروني إلى عنوان البريد الإلكتروني لصاحب الحساب من أجل معرفة التطبيقات المتأثّرة والمواعيد النهائية لحلّ هذه المشاكل.
- حدِّث تطبيقاتك المتأثرة بالثغرة الأمنية وأصلِحها.
- يجب إرسال النُسخ المُحدَّثة من تطبيقاتك المتأثرة.
وعند إعادة الإرسال، سيخضع تطبيقك للمراجعة مرة أخرى. ويمكن أن تستغرق هذه العملية عدة ساعات. إذا اجتاز التطبيق المراجعة وتم نشره بنجاح، لا يلزم اتخاذ أي إجراء آخر. وإذا تعذّر على التطبيق اجتياز المراجعة، لن يتم نشر إصدار التطبيق الجديد وسيتم إرسال إشعار بذلك عبر البريد الإلكتروني.
تفاصيل إضافية
بموجب سياسة إساءة استخدام الأجهزة والشبكات، "يجب ألا تسمح التطبيقات أو الرموز التابعة لجهات خارجية (مثل حِزم تطوير البرامج (SDK)) التي يتم تحميل ملفات JavaScript لها في وقت التشغيل بحدوث الانتهاكات المحتمَلة لسياسات المطوِّرين في Play".
نشير في هذه المقالة إلى أي كائن يكشف عن وظيفة للمكوّن WebView من خلال الإجراء addJavascriptInterface
لأحد المكوّنات WebView بصفته واجهة JavaScript كما هو موضَّح في مدوّنة Google Developers (إنشاء تطبيقات الويب في WebView).
تسمح فئة الثغرات الأمنية هذه بحدوث انتهاكات بيانات المستخدم والبرامج الضارة المحتمَلة من خلال واجهات JavaScript. بناءً على الواجهات التي تم الكشف عنها، يمكن أن يؤدي ذلك إلى جمع واستخراج البيانات غير المتوقعة بالإضافة إلى تطبيقات قد تتسبّب بضرر بدون معرفة مطوّر التطبيق أو حزمة تطوير البرامج (SDK).
ننصحك بمنع ظهور هذه الثغرة الأمنية من خلال اتّباع إحدى الطرق الآتية:
الخيار 1: التأكّد من أنّ مكوّنات WebView لا تضيف أي كائنات إلى واجهة JavaScript
يمكنك التأكّد من عدم وجود أي كائنات تمت إضافتها إلى واجهة JavaScript لأي مكوّن WebView يحمِّل محتوى على الويب غير موثوق به. ويمكنك إجراء ذلك بطريقتين:
- التأكّد من عدم إضافة أي كائنات مطلقًا إلى واجهة JavaScript من خلال عمليات الاستدعاء إلى addJavascriptInterface
-
إزالة الكائنات من واجهة JavaScript في shouldInterceptRequest من خلال removeJavascriptInterface قبل تحميل المحتوى غير الموثوق به بواسطة WebView
الخيار 2: التأكّد من عدم عرض الوظائف الحساسة من خلال واجهة JavaScript
عليك التأكّد من عدم إضافة أي وظائف حساسة (مثل طلبات البيانات من واجهة برمجة التطبيقات Android API التي تتطلّب أذونات) إلى واجهات JavaScript. تشمل هذه البيانات عدم جمع بيانات حساسة مثل معلومات عن المستخدم أو الجهاز أو الكشف عن واجهات برمجة تطبيقات مثل واجهات تسهيل الاستخدام أو الرسائل القصيرة (SMS). هناك عدّة طرق لإصلاح الثغرات الأمنية بهذه الطريقة:
- يمكنك إعادة تنفيذ أي وظيفة تتطلّب أذونات حساسة أو تجمع معلومات حساسة حتى يتم طلبها من الرمز المجمَّع داخل التطبيق. تأكَّد من تقديم بيان الإفصاح الواضح عن التعامل مع البيانات للمستخدمين.
- يمكنك إزالة أي وظائف توفّر إمكانية الوصول إلى وظائف حساسة أو بيانات المستخدمين التي يمكن الوصول إليها من الواجهة.
الخيار 3: التأكّد من أنّ WebView لا يعرض الوظائف الحساسة للمحتوى غير الموثوق به
إذا كان المكوّن WebView يتضمّن وظيفة حساسة، قد لا يحمِّل JavaScript عشوائيًا من مصادر غير معروفة ويجب أن يقدّم بيان الإفصاح الواضح عن التعامل مع البيانات أو الوظائف المستخدَمة حاليًا. تأكَّد من أنّه لا يتم تحميل سوى عناوين URL ذات النطاق الصارم والمحتوى المملوك لمطوّر التطبيقات ضِمن WebView.
في حال عدم إصلاح الثغرة الأمنية، سيتم التعامل مع التطبيق على أنّه ينتهك بشكل محتمل سياسات Play.
نحن في الخدمة
في حال عدم الموافقة على قرارنا بعد مراجعة متطلّبات السياسة، يُرجى التواصل مع فريق الدعم المعني بالسياسات. سنردّ عليك في غضون يومَي عمل.
نشكرك على دعمك المستمر للمساعدة في تقديم تجربة إيجابية على Google Play لكل من مطوّري البرامج والمستهلكين.