reactjs - 使用 Firebase 远程配置而不是 .env 文件

标签 reactjs firebase environment-variables

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

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

要连接到 firebase,我可以使用 reserved url method to automatically connectFirebase remote config允许您存储键值对。我正在考虑将所有环境变量移出以删除配置设置并从那里使用它。因此我可以完全删除我的 .env 文件并避免暴露任何硬编码值。

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

最佳答案

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

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

Firebase 远程配置可以而且应该用于客户端可以安全使用的值,例如 API 的功能标志或特定于环境的 URL。它不应该用于敏感的事情,例如私有(private) API key 和 secret 。

关于reactjs - 使用 Firebase 远程配置而不是 .env 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66361728/

相关文章:

reactjs - 如何使用 Jest 测试异步存储?

javascript - 如何仅显示项目 map (如果存在)

javascript - React refs 是如何使用的,什么时候使用的?

node.js - 如何使用 Firebase 云函数 Node.js 访问 Firebase 存储

firebase - ID Token 与 uid 的用法?

firebase - 通过缩短字段名称来节省 Firebase 带宽?

python - 关于pyinstaller的路径问题

kubernetes - Next.js 环境变量在本地工作,但在 Kubernetes 上托管时不起作用

javascript - React 中嵌套数据的不可变更新模式

python - 如何在 python 脚本中使用 Jenkins 环境变量