谨慎实现 Intents

详细描述

Intents用于组件间信令,而且可以被用来做以下事情:

  • 启动Activity,通常为应用程序打开用户界面
  • 作为广播以通知系统和应用程序的变化
  • 开始,停止和与后台服务进行通信
  • 通过ContentProvider访问数据
  • 作为回调处理事件

不正确的实现可能导致数据泄露,受限功能被调用和程序流被操纵。

建议

  • 通过Intents访问的组件可以是公共的或私有的。 默认值取决于Intents过滤器,很容易错误地允许组件被公开。 可以在应用程序的Manifest中将组件设置为android:exported = false,以防止出现这种情况。

  • 默认情况下,在清单中声明的公共组件是开放的,所以任何应用程序都可以访问它们。 如果组件不需要被所有其他应用程序访问,请考虑设置对清单中声明的组件的权限。

  • 公共组件接收的数据不可信任,必须仔细检查。

CWE/OWASP