android:exported

فئة OWASP: MASVS-PLATFORM: Platform Interaction

نظرة عامة

تحدّد android:exported السمة ما إذا كان يمكن تشغيل أحد المكوّنات (نشاط أو خدمة أو أداة استقبال بث أو غير ذلك) من خلال مكوّنات تطبيقات أخرى:

  • إذا كانت القيمة true، يمكن لأي تطبيق الوصول إلى النشاط وتشغيله باستخدام اسم الفئة الدقيق.
  • في حال ضبط القيمة على false، يمكن فقط لمكوّنات التطبيق نفسه أو التطبيقات التي لها معرّف المستخدم نفسه أو مكوّنات النظام ذات الامتيازات إطلاق النشاط.

تغيّرت بمرور الوقت آلية تحديد القيمة التلقائية لهذه السمة، وكانت تختلف حسب أنواع المكوّنات وإصدارات Android. على سبيل المثال، في المستوى 16 لواجهة برمجة التطبيقات (Android 4.1.1) أو الإصدارات الأقدم، يتم ضبط قيمة عناصر <provider> على true تلقائيًا. عدم ضبط هذه السمة بشكلٍ صريح ينطوي على خطر اختلاف القيم التلقائية بين بعض الأجهزة.

التأثير

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

هجمات حجب الخدمة تطبيقات أخرى تصل بشكل غير لائق إلى المكوّنات الداخلية لتعديل الوظائف الداخلية لتطبيقك تسرُّب البيانات الحسّاسة تنفيذ الرمز البرمجي في سياق التطبيق المعرَّض للاختراق

إجراءات التخفيف

اضبط السمة android:exported بشكلٍ صريح دائمًا. لن يترك ذلك مجالاً للتفسير وسيشير بوضوح إلى نيتك فيما يتعلق بظهور أحد المكوّنات.