api - 如何在 Flutter 中存储 API key (2020 年 7 月)

标签 api flutter dart

现在是 2020 年 7 月。
悬而未决的问题是:如果我的 Flutter 应用程序需要 secret 字符串来操作,比如 API key ,那么什么策略可以防止恶意方从已发布的应用程序中提取此 API key ?
我发现了一些关于这个主题的讨论线程,但似乎没有一个得到答案。
使用flutter_secure_storage
我认为这行不通。我可以用它来通过用户输入 到钥匙串(keychain)/ key 库,它将永远保持安全。但是除非我亲自在我的应用程序的每个安装中键入 API key ,否则它不能用于存储 API key ......没有 API key 在代码/ Assets 中
将 API key 存储在后端服务器上,仅将结果传递给应用程序
好吧,这只会通过额外的步骤产生同样的问题。
我的供应商 API key 现在在我的后端服务器上是安全的。但是,我用来监管来自后端服务器的数据请求的“关键”是什么……嗯,这需要在 flutter 代码/ Assets 中
使用 Firebase 远程配置
firebase 说不要那样做:

Don't store confidential data in Remote Config parameter keys or parameter values. It is possible to decode any parameter keys or values stored in the Remote Config settings for your project.


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

最佳答案

我有一些解决方案。

  • 让它更难理解 -

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

  • 将您的 API key 存储在文档中,并在进行 API 调用时检索它。
    (..我认为这是一个更好的方法)
    让我知道你在想什么。 :)

    关于api - 如何在 Flutter 中存储 API key (2020 年 7 月),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63193840/

    相关文章:

    java - 在 Elasticsearch 的一个查询中返回所有记录

    php - 为什么我的 Twitter oAuth 请求不起作用? | curl 、标题

    php - WIPmania API - 获取 IP 地理位置

    java - 使用 REST API 将数据库与其他 REST API 解耦

    flutter - 在 xcode v 13.1 中存档应用程序时,命令 PhaseScriptExecution 失败并出现非零退出代码

    flutter - 有什么方法可以在 Material App 中设置全局 textscalefactor 和 home 属性吗?

    dart - 如何在 Dart 中的字符串中查找\n

    flutter - Flutter中的LinearGradient?

    flutter - 如何处理音频文件?

    flutter - Flutter:使用带有http请求的Firebase实时数据库实现分页