android:exported

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

概览

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

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

该属性默认值背后的逻辑随着时间推移而变化,并且根据组件类型和 Android 版本而有所不同。例如,在 API 级别 16 (Android 4.1.1) 或更低版本中,<provider> 元素的值默认设置为 true。未显式设置此属性可能会导致某些设备上的默认值不同。

影响

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

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

缓解措施

始终显式设置 android:exported 属性。这样不会留下任何解释空间,并清晰地表明您对组件可见性的意图。