现在是 2020 年 7 月。
悬而未决的问题是:如果我的 flutter 应用程序需要秘密字符串来运行,比如 API 密钥,那么什么策略可以防止恶意方能够从已发布的应用程序中提取此 API 密钥?
我发现了一些关于这个主题的讨论线程,但似乎没有一个答案。
使用 flutter_secure_storage
我不认为那行得通。我可以使用它来将用户输入传递到 Keychain/Keystore,在那里它将永远保持安全。但是除非我亲自将 API 密钥输入到我的应用程序的每个安装中,否则这不能用于存储 API 密钥......如果 API 密钥不在代码/资产中
将 API 密钥存储在后端服务器上,仅将结果传递给应用程序
好吧,这只会通过额外的步骤产生同样的问题。我的供应商 API 密钥现在在我的后端服务器上是安全的。但是我使用什么“密钥”来管理来自后端服务器的数据请求……嗯,这需要在颤振代码/资产中
使用 firebase 远程配置
firebase 说不要那样做:
不要在远程配置参数键或参数值中存储机密数据。可以对项目的远程配置设置中存储的任何参数键或值进行解码。
好的,这是我认为不起作用的几种方法。真的有有效的策略吗?