首页 > 解决方案 > 如何保护谷歌 API 密钥

问题描述

我一直在对 Android 应用程序进行一些安全测试。我想要解决的一件事是 API 密钥安全性。特别是谷歌地方和地图键。有很多帖子讨论了这些选项,即将密钥编译为源代码,将它们放入资源文件中,将它们编译到共享库中等。在我的特定情况下,Maps 密钥在清单文件中,而 Places 密钥在共享库中。我创建了一个签名的 APK 来测试获取和使用其中一个密钥的难度。我做了以下事情:

然后我:

所以最后,不费吹灰之力,我就有了两个密钥,然后我可以在应用程序的假版本中使用它们。

我确定我一定错过了什么。看起来 Maps 的唯一选择是将密钥存储在清单中。是什么阻止某人做我所做的事?当然不能只是冷漠。我意识到如果有人试图使用被劫持的 API 密钥发布他们的应用程序,他们可能会被抓住。但是,有人可以创建一个应用程序并让人们侧加载它。如果公司每次有人弄乱它时都必须更改被劫持的密钥,这对客户来说将是一个巨大的破坏。

标签: androidgoogle-mapsgoogle-places

解决方案


我相信您需要再次浏览 Google API 密钥的文档。似乎有一些称为限制的东西应该能够帮助您确保您的密钥受到保护并且不用于其他应用程序。

我相信限制会阻止来自您未包含的其他域的请求无法呈现。

API 密钥最佳实践


推荐阅读