谨慎实现Intents

细节

Intents用于内部组件间通信,可以被用于

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

不正确的实现可能导致数据泄漏、受限功能被恶意调用或者程序流程被恶意操纵。

修复

  • 通过Intents访问的组件可以是公共的或私有的。默认值取决于Intent过滤器。并且它非常容易错误地允许组件成为公共的。可以在应用程序清单中将组件设置为android:exported = false来防止这种情况。

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

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

参考

results matching ""

    No results matching ""