【问题标题】:Hide an API key in the Android app在 Android 应用中隐藏 API 密钥
【发布时间】:2017-12-28 12:17:06
【问题描述】:

我为我的移动应用开发了一些 API。我有一些用于访问此 API 的 API 密钥。如您所知,没有任何可能的方法可以隐藏 API 密钥。但是,如果我用 Firebase 配置来做呢? (https://firebase.google.com/docs/remote-config/api-overview)

我的想法:不要使用默认参数进行远程配置。如果应用程序无法从 Firebase 获取 API 密钥,那么它将无法运行。在运行时使用 API 密钥,无需将其保存到本地存储和应用代码中。

有人试过吗?这是保存 API 密钥的好主意吗?

【问题讨论】:

  • Firebase 远程配置可供所有用户访问。它不应该被用来分享秘密。一般来说:如果你的 API 密钥应该保密,千万不要把它放在客户端设备中。您需要一个服务器(或类似 Cloud Functions 的东西)来防止您的用户发现秘密。

标签: android security firebase


【解决方案1】:

您可以使用模拟 API 密钥进行编译,并使用远程配置在运行时使用原始 API 密钥进行更改,但为什么呢?怎么样

  • 使用共享偏好和加密
  • 将您的 API 密钥嵌入到资源文件
  • 构建配置中隐藏您的 API 密钥
  • 使用 proguard 混淆您的 API 密钥

【讨论】:

  • 感谢您的回答。我认为共享首选项和资源文件不是一个好主意。构建配置仅从存储库中隐藏密钥,而不是用于反编译器,不是吗? Proguard 不是 100% 安全的
  • 没有例程是 100% 安全的,但请参阅 Eric Lafortune 的回答 stackoverflow.com/a/14572051/6683139
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-12-11
  • 2021-04-30
  • 2016-02-12
  • 2018-03-15
  • 1970-01-01
  • 2017-03-12
相关资源
最近更新 更多