android:exported

OWASP 类别: MASVS-PLATFORM:平台交互

概述

android:exported 属性 设置组件(活动、服务、广播接收器等)是否可以由其他应用的组件启动

  • 如果 true,则任何应用都可以访问该活动并通过其确切的类名启动它。
  • 如果 false,则只有同一应用的组件、具有相同用户 ID 的应用或特权系统组件才能启动该活动。

此属性的默认值的逻辑随着时间的推移而改变,并且根据组件类型和 Android 版本的不同而不同。例如,在 API 级别 16(Android 4.1.1)或更低版本上,<provider> 元素的默认值为 true。不显式设置此属性会带来某些设备之间默认值不同的风险。

影响

默认值不同的情况意味着您可能会意外地公开内部应用组件。后果的一些示例如下

拒绝服务攻击。其他应用不适当地访问内部组件以修改应用的内部功能。敏感数据泄露。在易受攻击的应用的上下文中执行代码。

缓解措施

始终显式设置 android:exported 属性。这将消除任何歧义,并明确表明您对组件可见性的意图。