gpt4 book ai didi

android - 如何保护谷歌 API key

转载 作者:行者123 更新时间:2023-11-29 16:30:28 30 4
gpt4 key购买 nike

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

  • 使用 apktool 对 APK 进行逆向工程,
  • 打开 list 并捕获 map 键,
  • 创建了一个伪造的应用程序版本,其包结构与原始版本相同,包含一个带有谷歌地图 fragment 的 Activity ,
  • 将 Maps key 放入伪造的 list 中,
  • 运行显示 map 的应用程序

然后我:

  • 使用与原始应用程序相同的包和名称在假应用程序中创建一个新类,并使用代码从/data/data/[包名称] 加载共享库,
  • 将共享库从反向工程 APK 复制到假应用的/data/data/[package name] 文件夹,
  • 运行伪造的应用程序,然后打印出 Locations API key

所以最后,我毫不费力地获得了两个 key ,然后可以在应用程序的伪造版本中使用它们。

我确定我一定遗漏了什么。看起来 Maps 的唯一选择是将 key 存储在 list 中。是什么阻止别人做我所做的事?肯定不能只是冷漠。我意识到如果有人试图使用被劫持的 API key 发布他们的应用程序,他们可能会被抓到。但是,有人可以创建一个应用程序并让人们加载它。如果公司每次都必须更改被劫持的 key ,这对客户来说将是一个巨大的干扰。

最佳答案

我认为您需要再次查看 Google API key 的文档。似乎有一种叫做限制的东西应该能够帮助您确保您的 key 受到保护并且不会被其他应用程序使用。

我认为限制可以防止来自您未包含的其他域的请求无法呈现。

API Key best practices

关于android - 如何保护谷歌 API key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56482557/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com