OWASP 分类: MASVS-PLATFORM: 平台交互
概览
android:exported
属性用于设置其他应用的组件(activity、服务、广播接收器等)是否可以启动某个组件
- 如果设置为
true
,则任何应用都可以通过确切的类名访问并启动此 activity。 - 如果设置为
false
,则只有同一应用的组件、具有相同用户 ID 的应用或特权系统组件才能启动此 activity。
该属性默认值背后的逻辑随着时间推移而变化,并且根据组件类型和 Android 版本而有所不同。例如,在 API 级别 16 (Android 4.1.1) 或更低版本中,<provider>
元素的值默认设置为 true
。未显式设置此属性可能会导致某些设备上的默认值不同。
影响
默认值不同的情况意味着您可能会意外地暴露内部应用组件。后果的一些示例如下所示
拒绝服务攻击。其他应用不当访问内部组件以修改您应用的内部功能。敏感数据泄露。在易受攻击的应用上下文中执行代码。
缓解措施
始终显式设置 android:exported
属性。这样不会留下任何解释空间,并清晰地表明您对组件可见性的意图。
为您推荐
- 注意:在 JavaScript 关闭时显示链接文本
- # 密钥管理 {:#key-management}
- 直接从 APK 运行嵌入式 DEX 代码
- 劫持点击