معالجة الثغرة الأمنية المتمثلة في حقن واجهة جافا سكريبت

هذه المعلومات موجَّهة للمطوّرين الذين لديهم تطبيقات تشتمل على الثغرة الأمنية المتمثلة في حقن واجهة جافا سكريبت.

تحليل المشكلة

يُرجى الرجوع إلى الإشعار في حسابك على Play Consoleوبعد مرور المواعيد النهائية الموضّحة في حسابك على Play Console، قد تتم إزالة أيّ تطبيقات تحتوي على ثغرات أمنية لم يتم إصلاحها من Google Play.

الإجراء المطلوب​

  1. سجِّل الدخول إلى حسابك على Play Console، وانتقِل إلى قسم "التنبيهات" لمعرفة التطبيقات المتأثرة بالثغرة الأمنية والمواعيد النهائية لحلّ هذه المشاكل.
  2. حدِّث تطبيقاتك المتأثرة بالثغرة الأمنية وأصلِحها.
  3. أرسِل النُسخ المُحدّثة من تطبيقاتك المتأثرة بالثغرة الأمنية.

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

تفاصيل إضافية

تجدر الإشارة إلى أن مكوّنات WebView التي تعرض الكائنات على مستوى التطبيق لرمز جافا سكريبت عبر addJavascriptInterface وتحمِّل محتوى ويب غير موثوق به تكون معرَّضة للثغرة الأمنية JavaScript Interface Injection. ويمكن أن ينفِّذ المحتوى غير الموثوق به أي أساليب خاصة بالكائنات المكشوفة تم التعليق عليها بعبارة @JavascriptInterface، ما يؤدي إلى تسرب البيانات أو تلفها أو حتى تنفيذ تعليمات برمجية عشوائية.

وننصحك أن تمنع ظهور هذه الثغرة الأمنية بطريقة واحدة مما يلي:

الخيار 1: التأكد أن مكوّنات WebView لا تضيف أي كائنات إلى واجهة جافا سكريبت

تأكّد من عدم وجود أي كائنات تمت إضافتها إلى واجهة جافا سكريبت لأي مكوّن WebView يحمِّل محتوى ويب غير موثوق به. ويمكنك إجراء ذلك بطريقتين:

 

التأكّد من عدم إضافة أي كائنات مطلقًا إلى واجهة جافا سكريبت عبر عمليات الاستدعاء إلى addJavascriptInterface.

  1. إزالة الكائنات من واجهة جافا سكريبت في shouldInterceptRequest من خلال removeJavascriptInterface قبل تحميل المحتوى غير الموثوق به بواسطة WebView.

الخيار 2: التأكد أن مكوّنات WebView لا تحمِّل محتوى ويب غير موثوق به

إذا كان تطبيقك بحاجة إلى كشف الكائنات على واجهة جافا سكريبت لمكوّن WebView، تأكّد أن WebView لا يحمِّل محتوى الويب من خلال اتصال غير مشفّر. ويمكنك ضبط قيمة android:usesCleartextTraffic إلى خطأ في ملف Manifest أو ضبط Network Security Config التي تمنع زيارات HTTP. أو يمكنك التأكد أن جميع مكوّنات WebView المتأثرة بالمشكلة لا تحمِّل أي عناوين URL تضم مخططات HTTP من خلال loadUrl.


ننصحك أيضًا بالتأكّد أن مكوّنات WebView التي تضم واجهات جافا سكريبت لا تحمِّل عناوين URL التي لم يتم التحقق منها وتمّ الحصول عليها من مصادر غير موثوق بها (مثل عناوين URL التي تمّ الحصول عليها من ملفات Intent غير موثوق بها).

تسرنا مساعدتك

إذا كان لديك أسئلة فنية حول الثغرة الأمنية، يمكنك طرحها على موقع Stack Overflow واستخدام العلامة "android-security". لمزيد من التوضيح عن الخطوات المطلوبة لحلّ هذه المشكلة، يمكنك التواصل مع فريق دعم مطوّري البرامج.

هل كان ذلك مفيدًا؟

كيف يمكننا تحسينها؟
false
القائمة الرئيسية
12375965820961997226
true
مركز مساعدة البحث
true
true
true
true
true
5016068
false
false