首页 > 解决方案 > 使用 Firebase 远程配置而不是 .env 文件

问题描述

我正在构建一个带有 firebase 集成的反应应用程序,并且可以通过在已部署的网站中获取页面的页面源来检查我们正在使用的环境变量。

我有兴趣知道一些使它更安全的方法。我能想到的唯一方法是从 API 中获取值,这样它就不会在任何时候与代码一起显示。

要连接到 firebase,我可以使用保留的 url 方法自动连接Firebase 远程配置允许您存储键值对。我正在考虑将我所有的环境变量移出以删除配置设置并从那里使用它。所以我可以完全删除我的 .env 文件,避免暴露任何硬编码的值。

有没有人试过这个?使 .env 值更安全的推荐方法是什么?

标签: reactjsfirebaseenvironment-variables

解决方案


您不应该将任何您不希望用户能够访问的值加载到浏览器中,期间。浏览器是一本打开的书,虽然您可以通过更改加载位置和方式来隐藏值,但您无法阻止有动机的攻击者绝对阅读您在客户端上所做的任何事情。

这就是为什么 Firebase 被设计为具有可安全公开读取的 API 密钥和配置的原因——当您编写安全规则时,您实际上是在围绕客户端可以执行的操作划定界限。

Firebase 远程配置可以而且应该用于客户端可以安全拥有的值——比如功能标志或 API 的环境特定 URL。它不应该用于敏感的东西,比如私有 API 密钥和秘密。


推荐阅读