Android 外部库!
对 Android 开发者来说,使用外部库来轻松扩展移动应用的功能已经成为标准做法。借助 Gradle 便捷的依赖集成,HTTP 框架、数据库 ORM、炫酷滚动效果、高效图片加载、缓存、社交网络集成等众多功能都可以轻松添加。
对 Android 开发者来说,使用外部库来轻松扩展移动应用的功能 已经成为标准做法。借助 Gradle 便捷的依赖集成,HTTP 框架、数据库 ORM、 炫酷滚动效果、高效图片加载、缓存、社交网络集成等众多功能都可以轻松添加。
dependencies {
compile 'com.android.support:appcompat-v7:22.0.0'
}
外部库让开发变得更加轻松高效,甚至被视为一种最佳实践。
然而,外部库也带来了安全风险,从新的漏洞、危险的隐藏功能,甚至到 令人不安的后门。
通过扫描排名前 150 的应用的外部依赖,我们找出了以下最常用的外部库:

这些库大多由 Twitter、Facebook 或 Square 等公司支持,但也有一些仅由一位 开发者维护。以 ButterKnife 为例,该项目 列出了 45 名贡献者,排名第一的贡献者有 251 次提交,第二名有 13 次提交,其余大多数仅有 1 次提交。
一旦植入后门的版本被推送到生产环境,这个库的沦陷就可能导致数百万用户受到危害。 还有一些库以黑盒形式提供,您甚至无法检查其源代码,例如 Flurry。
外部库的安全并不是一个简单的话题,但以下是一些可以采用的建议:
- 定期查看库的安全公告,并相应地更新库
- 在将每个外部库引入您的应用之前对其进行审计。
- 控制外部库与您的应用之间的交互
- 在更新任何库之前,检查新提交的内容
- 代码托管网站经常成为恶意攻击的目标(例如针对 github.com 的大规模 DDoS 攻击)。请关注它们的 博客和推文以及时获取信息。