【问题标题】:I have restricted my Google API key to my mobile app package. Can it still be stolen?我已将我的 Google API 密钥限制为我的移动应用程序包。还能被盗吗?
【发布时间】:2020-04-21 20:09:55
【问题描述】:

访问 Google Maps API 的 Google API 密钥存储在我的 React-Native 移动应用清单中。我已遵循建议并将其限制在我的应用程序包和 GCP 上的 Maps API 中使用。

恶意用户可以反编译我的应用程序,提取密钥和包名并继续使用它吗?

【问题讨论】:

  • 我的理解是没有办法完全隐藏这个 API 密钥,唯一的保护就是像你一样限制密钥的使用。由于您的包具有唯一的 ID,因此攻击者无法使用该密钥。你最终是否使用了另一种技术@Schultz9999?

标签: android react-native google-api


【解决方案1】:

如果您使用的是 Android 应用限制功能,那么您的 Google API 密钥是安全的,不会被盗。

API 密钥限制有两种类型:API 限制和 应用限制。应用程序限制限制使用 特定网站、Web 服务器或应用程序的 API 密钥。谷歌 地图平台支持四种应用限制:

  • ...
  • Android 应用限制:限制使用来自具有指定包名称的 Android 应用的调用。

取自GCP Google Maps best practices

【讨论】:

  • 对。这是理论上的。我担心的是从 APK 中破解密钥以及应用程序包名称,然后使用这两个信息来调用 Google API。
【解决方案2】:

只要 API 密钥存在于您的代码中,始终可以对应用程序的 APK 进行反编译和解密以获取 API 密钥。

保证密钥不被暴露的唯一解决方案很简单 - 首先不要将它们放在项目中。我通常会创建一个 local.properties 文件,其中包含我的密钥库路径、我的密码和 API 密钥作为键值对。然后我从我的 VCS 中排除,只需打开一个 FileStream 并读取这些键值对象。

你不能那样泄露你的 API 密钥。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多