可以使用 Firebase RemoteConfig 来存储 API 密钥吗?

2024-01-02

注意:澄清一下,这不是 Firebase API 密钥,这可能更像是一个令牌……客户端应用程序拥有并由服务器端点验证的东西。

我们正在努力更好地保护 API 密钥(想想用于验证端点客户端的令牌)。这一切都将在我们的内部网络上,但我们仍然希望确保只有我们的移动客户端可以呼叫端点。

我想我们可以将 API 密钥放入 Firebase 远程配置参数中(应用程序中内置了无效的默认值)。但是,Firebase 远程配置文档说:

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

我不确定这是否只是指与应用程序捆绑在一起的默认值,或者是否也指远程加载的值。获得密钥后,我们可以对其进行加密并通过我们的 MDM 提供商将其存储在设备上。

另外,远程配置数据到应用程序的传输是加密的还是明文的?

感谢任何人都可以提供有关远程配置的更多信息。


这取决于您希望保持 API 密钥的安全程度。 API 密钥允许某人做什么?如果只是为了向其他服务(例如 YouTube 数据 API)识别您的应用,那么最糟糕的情况就是恶意用户用完您对该资源的配额。另一方面,如果密钥允许持有者在没有进一步身份验证和授权的情况下对重要数据进行一些不可逆转的更改,那么您永远不希望它以任何形式存储在他们的设备上。

您引用的 Firebase 文档回答了您的问题。一般来说,您不应该在应用程序中存储私钥。查看以下问题的答案这个问题 https://stackoverflow.com/questions/14778429/secure-keys-in-ios-app-scenario-is-it-safe以获得详尽的解释。

使用 Firebase 的远程配置并不比在应用程序包中传送密钥更安全。无论哪种方式,数据最终都会存储在用户的硬件上。理论上,恶意的人可以访问它,无论我们认为这有多困难。

另外,我不能肯定地说(您应该能够轻松测试这一点),但我非常怀疑远程配置值是否以纯文本形式发送。默认情况下,Google 会通过 https 执行所有操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可以使用 Firebase RemoteConfig 来存储 API 密钥吗? 的相关文章

随机推荐

  • pycuda.driver 中的 pycuda 导入错误

    我正在尝试编译一些用于我的 GPU 的源代码 我为此使用 pycuda 当我编译源代码时 我收到一些来自 Python 的错误 C Users Dmitriy wcm gt python ws gpu py test dcm Traceba
  • 如何将参数传递给 Hudson 作业的 shell 命令

    我有一个 Hudson 工作 在远程服务器上执行 shell 脚本 其shell命令是 usr bin deployWar sh warfileName 我将此构建标记为参数化 并添加了一个字符串参数 name warFileName de
  • django 如何断言 url 模式解析为正确的基于类的视图函数

    我有一个基于阶级的观点 class HomePage View def get self request return HttpResponse p This is content p 和 url pattern 定义如下 urlpatte
  • 为什么默认情况下不允许返回 JSON 的 GET 请求?

    作为 ASP NET MVC 2 Beta 2 更新的一部分 默认情况下不允许 JSON GET 请求 看来你需要设置JsonRequestBehavior字段到JsonRequestBehavior AllowGet在返回之前JsonRe
  • #if RELEASE 会像 C# 中的 #if DEBUG 一样工作吗?

    在我见过的 if 编译器指令的所有示例中 它们都使用 DEBUG 我可以以同样的方式使用 RELEASE 来排除在调试模式下编译时不想运行的代码吗 我想用这个块包围的代码会发送一堆电子邮件 我不想在测试时意外地发送这些电子邮件 RELEAS
  • 将 Google C++ 测试框架与 CMake 结合使用的最简单示例

    我有一个非常简单的 C 库 一个头文件 一个 cpp 文件 我想使用 Google C 测试框架为此项目编写单元测试 这是目录结构 project1 project1 cpp project1 h project1 unittests cp
  • 动态更改视频使 play() 请求被新的加载请求中断

    动态更改视频时 我在服务器控制台下收到以下错误 index 71 Uncaught in promise DOMException The play request was interrupted by a new load request
  • 在Python中,如何从点分json文件生成嵌套字典?

    我有一个 json 文件 例如 a 0 7615894039735099 a b 0 7152317880794702 a c 0 026490066225165563 a b d 0 0001 f 0 002 f g 0 00003 h
  • 使用CSS限制响应式图像的高度

    我的最终目标是拥有液体 img 仅使用 css 不会扩展超过父 祖父元素的显式设置高度 目前我正在用正常的 max width 100 height auto 流体图像和 javascript 通过从 img 标签读取高度 宽度属性 计算长
  • EditorFor 用于字符串列表

    我希望用户输入 5 个字符串 问题的可能答案 所以我的问题视图模型中有这些元素 private IEnumerable
  • 在鞋子中,如何将堆栈停靠在窗口底部?

    在鞋子中 我如何将堆栈停靠在窗口底部 例如我有以下代码片段 Shoe app do stack height gt 100 do background red end stack height gt 100 do background bl
  • 如何将 Automapper 与 Autofac 结合使用

    我已经升级到最新版本的 AutoMapper 9 0 并将静态配置更改为 public static IMapper RegisterAutoMapper var config new MapperConfiguration cfg gt
  • 如何使用 HTML 和 CSS 作为 Java 应用程序 GUI?

    我想设计具有干净 GUI 的新 Git 客户端 是否可以在 java 应用程序中使用 HTML CSS 和 JavaScript 的强大功能 我想使用 Java JGit 作为模型 Java 作为控制器 HTML CSS JavaScrip
  • 将标准输出流式传输到网页

    这看起来应该是一件非常简单的事情 不幸的是 Web 开发从来都不是我的强项 我有很多脚本 我想从网页启动它们并查看页面上的实时标准输出文本 有些脚本需要很长时间才能运行 因此正常的单一响应不够好 我已经开始工作了 据我所知 我的选择是 st
  • .DrawImage 具有不透明度?

    g DrawImage 是的 在我的图片框中画一个图像 是否可以给它一个不透明属性 我一直在查看 DrawImage 的其他版本 但找不到这样的东西 您必须使用 ColorMatrix 来混合图像 这是我不久前编写的一个 C 控件 它向您展
  • 哪些小部件约束对于 Grails 域类有效?

    你能告诉我有效值的列表吗小部件约束 http grails org doc 2 0 x ref Constraints widget html下面 一些小部件 例如 static constraints someField widget s
  • Visual Studio 增量构建:XML 文档文件创建得太晚

    我有一个 Visual Studio 2005 的 DLL 项目 它打开了 XML 文档文件 每当我进行增量构建时 在构建后事件执行期间 输出目录中没有 XML 文档文件 如果我在构建后事件期间暂停构建 使用来自GnuWin32 CoreU
  • 使用单个 NSMutableArray 填充 UITableView 部分表

    抱歉再次询问带有完整描述的问题 我有 resultsArray 其中包含从服务器获取的标题描述等 但问题是我想分节显示此数据 假设有来自数组的三个部分 那么如何使用单个 resultArray 填充每个部分中的数据 NSString tab
  • isset() 的 PHP 简写? [复制]

    这个问题在这里已经有答案了 如果 PHP 中不存在某个变量 是否有一种快捷方式将其分配给该变量 if isset var var 我想做类似的事情 var var PHP 7 更新 谢谢震惊狂野 https stackoverflow co
  • 可以使用 Firebase RemoteConfig 来存储 API 密钥吗?

    注意 澄清一下 这不是 Firebase API 密钥 这可能更像是一个令牌 客户端应用程序拥有并由服务器端点验证的东西 我们正在努力更好地保护 API 密钥 想想用于验证端点客户端的令牌 这一切都将在我们的内部网络上 但我们仍然希望确保只