دسته OWASP: MASVS-PLATFORM: پلتفرم تعامل
نمای کلی
ویژگی android:exported
تعیین میکند که آیا یک مؤلفه (فعالیت، سرویس، گیرنده پخش و غیره) میتواند توسط مؤلفههای سایر برنامهها راهاندازی شود یا خیر:
- اگر
true
، هر برنامه ای می تواند به فعالیت دسترسی داشته باشد و آن را با نام دقیق کلاس خود راه اندازی کند. - اگر
false
باشد، فقط مؤلفههای همان برنامه، برنامههایی با شناسه کاربری یکسان یا مؤلفههای سیستم دارای امتیاز میتوانند فعالیت را راهاندازی کنند.
منطق پشت مقدار پیشفرض این ویژگی در طول زمان تغییر کرد و بسته به انواع مؤلفه و نسخههای اندروید متفاوت بود. به عنوان مثال، در سطح API 16 (Android 4.1.1) یا مقدار کمتر برای عناصر <provider>
به طور پیش فرض روی true
تنظیم شده است. تنظیم نکردن این ویژگی به طور صریح خطر وجود مقادیر پیشفرض متفاوت بین برخی دستگاهها را به همراه دارد.
تاثیر
وضعیت با مقادیر مختلف پیشفرض به این معنی است که میتوانید به طور تصادفی اجزای برنامه داخلی را در معرض دید قرار دهید. چند نمونه از پیامدها می تواند به شرح زیر باشد:
حملات انکار سرویس دسترسی نامناسب سایر برنامه ها به اجزای داخلی برای تغییر عملکرد داخلی برنامه شما. نشت داده های حساس اجرای کد در زمینه برنامه آسیب پذیر.
اقدامات کاهشی
همیشه مشخصه android:exported
به صراحت تنظیم کنید. این هیچ جایی برای تفسیر باقی نمی گذارد و به وضوح قصد شما را در مورد دید یک جزء نشان می دهد.
برای شما توصیه می شود
- توجه: وقتی جاوا اسکریپت خاموش است، متن پیوند نمایش داده می شود
- # مدیریت کلید {:#key-management}
- کد DEX جاسازی شده را مستقیماً از APK اجرا کنید
- تپجک زدن