android:exported

دسته OWASP: MASVS-PLATFORM: پلتفرم تعامل

نمای کلی

ویژگی android:exported تعیین می‌کند که آیا یک مؤلفه (فعالیت، سرویس، گیرنده پخش و غیره) می‌تواند توسط مؤلفه‌های سایر برنامه‌ها راه‌اندازی شود یا خیر:

  • اگر true ، هر برنامه ای می تواند به فعالیت دسترسی داشته باشد و آن را با نام دقیق کلاس خود راه اندازی کند.
  • اگر false باشد، فقط مؤلفه‌های همان برنامه، برنامه‌هایی با شناسه کاربری یکسان یا مؤلفه‌های سیستم دارای امتیاز می‌توانند فعالیت را راه‌اندازی کنند.

منطق پشت مقدار پیش‌فرض این ویژگی در طول زمان تغییر کرد و بسته به انواع مؤلفه و نسخه‌های اندروید متفاوت بود. به عنوان مثال، در سطح API 16 (Android 4.1.1) یا مقدار کمتر برای عناصر <provider> به طور پیش فرض روی true تنظیم شده است. تنظیم نکردن این ویژگی به طور صریح خطر وجود مقادیر پیش‌فرض متفاوت بین برخی دستگاه‌ها را به همراه دارد.

تاثیر

وضعیت با مقادیر مختلف پیش‌فرض به این معنی است که می‌توانید به طور تصادفی اجزای برنامه داخلی را در معرض دید قرار دهید. چند نمونه از پیامدها می تواند به شرح زیر باشد:

حملات انکار سرویس دسترسی نامناسب سایر برنامه ها به اجزای داخلی برای تغییر عملکرد داخلی برنامه شما. نشت داده های حساس اجرای کد در زمینه برنامه آسیب پذیر.

اقدامات کاهشی

همیشه مشخصه android:exported به صراحت تنظیم کنید. این هیچ جایی برای تفسیر باقی نمی گذارد و به وضوح قصد شما را در مورد دید یک جزء نشان می دهد.

{% کلمه به کلمه %} {% آخر کلمه %} {% کلمه به کلمه %} {% آخر کلمه %}