reactjs - 使用 Firebase 远程配置而不是 .env 文件
问题描述
我正在构建一个带有 firebase 集成的反应应用程序,并且可以通过在已部署的网站中获取页面的页面源来检查我们正在使用的环境变量。
我有兴趣知道一些使它更安全的方法。我能想到的唯一方法是从 API 中获取值,这样它就不会在任何时候与代码一起显示。
要连接到 firebase,我可以使用保留的 url 方法自动连接。Firebase 远程配置允许您存储键值对。我正在考虑将我所有的环境变量移出以删除配置设置并从那里使用它。所以我可以完全删除我的 .env 文件,避免暴露任何硬编码的值。
有没有人试过这个?使 .env 值更安全的推荐方法是什么?
解决方案
您不应该将任何您不希望用户能够访问的值加载到浏览器中,期间。浏览器是一本打开的书,虽然您可以通过更改加载位置和方式来隐藏值,但您无法阻止有动机的攻击者绝对阅读您在客户端上所做的任何事情。
这就是为什么 Firebase 被设计为具有可安全公开读取的 API 密钥和配置的原因——当您编写安全规则时,您实际上是在围绕客户端可以执行的操作划定界限。
Firebase 远程配置可以而且应该用于客户端可以安全拥有的值——比如功能标志或 API 的环境特定 URL。它不应该用于敏感的东西,比如私有 API 密钥和秘密。
推荐阅读
- java - Scala 只接受 List 中的 String 或 Int 通用案例类
- ruby-on-rails - rails迁移设置布尔字段不起作用
- jsf - request.getSession(true) 始终生成一个空会话
- python - 熊猫数据框未正确创建
- mongodb - 如何从猫鼬中的引用模型中获取字段?
- java - 比较并获取值后,我的应用程序被强制关闭
- java - 如何使用 3 个更改值循环此语句以设置 40 个文本字段的 setText?
- reactjs - Index.html 不会在嵌套 url 上加载 css 或脚本
- jquery - bootstrap-4 模态中的双滚动条
- javascript - 为什么我无法在电子中全局使用路径、fs 导入