android:exported
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
فئة OWASP: MASVS-PLATFORM: Platform Interaction
نظرة عامة
تحدّد android:exported
السمة ما إذا كان يمكن تشغيل أحد المكوّنات (نشاط أو خدمة أو أداة استقبال بث أو غير ذلك) من خلال مكوّنات تطبيقات أخرى:
- إذا كانت القيمة
true
، يمكن لأي تطبيق الوصول إلى النشاط وتشغيله باستخدام اسم الفئة الدقيق.
- في حال ضبط القيمة على
false
، يمكن فقط لمكوّنات التطبيق نفسه أو التطبيقات التي لها معرّف المستخدم نفسه أو مكوّنات النظام ذات الامتيازات إطلاق النشاط.
تغيّرت بمرور الوقت آلية تحديد القيمة التلقائية لهذه السمة، وكانت تختلف حسب أنواع المكوّنات وإصدارات Android. على سبيل المثال، في المستوى 16 لواجهة برمجة التطبيقات (Android 4.1.1) أو الإصدارات الأقدم، يتم ضبط قيمة عناصر <provider>
على true
تلقائيًا. عدم ضبط هذه السمة بشكلٍ صريح ينطوي على خطر اختلاف القيم التلقائية بين بعض الأجهزة.
التأثير
ويعني الوضع الذي تتضمّن فيه القيم التلقائية المختلفة إمكانية عرض مكوّنات التطبيق الداخلية عن طريق الخطأ. في ما يلي بعض الأمثلة على العواقب المحتملة:
هجمات حجب الخدمة
تطبيقات أخرى تصل بشكل غير لائق إلى المكوّنات الداخلية لتعديل الوظائف الداخلية لتطبيقك
تسرُّب البيانات الحسّاسة
تنفيذ الرمز البرمجي في سياق التطبيق المعرَّض للاختراق
إجراءات التخفيف
اضبط السمة android:exported
بشكلٍ صريح دائمًا. لن يترك ذلك مجالاً للتفسير وسيشير بوضوح إلى نيتك فيما يتعلق بظهور أحد المكوّنات.
أفلام مُقترَحة لك
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# android:exported\n\n\u003cbr /\u003e\n\n**OWASP category:** [MASVS-PLATFORM: Platform Interaction](https://mas.owasp.org/MASVS/09-MASVS-PLATFORM)\n\nOverview\n--------\n\nThe `android:exported` [attribute](/guide/topics/manifest/activity-element#exported) sets whether a component (activity, service, broadcast receiver, etc.) can be launched by components of other applications:\n\n- If `true`, any app can access the activity and launch it by its exact class name.\n- If `false`, only components of the same application, applications with the same user ID, or privileged system components can launch the activity.\n\nThe logic behind the default value of this attribute changed over time and was different depending on the component types and Android versions. For example, on API level 16 (Android 4.1.1) or lower the value for `\u003cprovider\u003e` elements is set to `true` by default. Not setting this attribute explicitly carries the risk of having different default values between some devices.\n\nImpact\n------\n\nThe situation with different default values means you could accidentally expose internal application components. A few examples of the consequences could be the following:\n\nDenial of service attacks.\nOther apps inappropriately accessing internal components to modify your app's internal functionality.\nLeaking of sensitive data.\nCode execution in the context of the vulnerable application.\n\nMitigations\n-----------\n\nAlways explicitly set the `android:exported` attribute. This will leave no room for interpretation and clearly signal your intention with regard to a component's visibility.\n\nRecommended for you\n-------------------\n\n- Note: link text is displayed when JavaScript is off\n- [# Key management {:#key-management}](/topic/security/data)\n- [Run embedded DEX code directly from APK](/topic/security/dex)\n- [Tapjacking](/topic/security/risks/tapjacking)"]]