如何在 Flutter 中存储 API 密钥(2020 年 7 月)

Nor*_*sak 7 api dart flutter

现在是 2020 年 7 月。

悬而未决的问题是:如果我的 flutter 应用程序需要秘密字符串来运行,比如 API 密钥,那么什么策略可以防止恶意方能够从已发布的应用程序中提取此 API 密钥?

我发现了一些关于这个主题的讨论线程,但似乎没有一个答案。

使用 flutter_secure_storage

我不认为那行得通。我可以使用它来将用户输入传递到 Keychain/Keystore,在那里它将永远保持安全。但是除非我亲自将 API 密钥输入到我的应用程序的每个安装中,否则这不能用于存储 API 密钥......如果 API 密钥不在代码/资产中

将 API 密钥存储在后端服务器上,仅将结果传递给应用程序

好吧,这只会通过额外的步骤产生同样的问题。我的供应商 API 密钥现在在我的后端服务器上是安全的。但是我使用什么“密钥”来管理来自后端服务器的数据请求……嗯,这需要在颤振代码/资产中

使用 firebase 远程配置

firebase 说不要那样做:

不要在远程配置参数键或参数值中存储机密数据。可以对项目的远程配置设置中存储的任何参数键或值进行解码。

好的,这是我认为不起作用的几种方法。真的有有效的策略吗?

Mad*_*ahi 0

我对此有一些解决方案。

  1. 让它变得更难理解——

将您的 API 密钥拆分为许多字符串。将它们存储在随机位置,并在调用时以非常复杂的方式组合它们。简而言之,使您的代码变得复杂而难以理解。

  1. 将您的 API 密钥存储在 Firestore 中 -

将您的 API 密钥存储在文档中,并在进行 API 调用时检索它。

(..我认为这是一个更好的方法)

让我知道你在想什么。:)

  • :)有用吗? (2认同)