You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dockerfile配置的环境变量在Sources标签可见,如何保护React应用环境变量?

问题原因
  • React 前端环境变量固有特性:所有前缀为REACT_APP_的环境变量,会在React项目构建阶段被直接替换、硬编码到最终打包生成的静态JS文件中,天生就会对所有访问站点的用户公开,可直接在浏览器源码中查看到。这类变量设计上仅用于存放非敏感的公开配置,不能存储需要保密的密钥。
  • Dockerfile 硬编码密钥的错误操作:你将密钥直接写在Dockerfile的ARG指令中,会导致密钥明文内置在Docker镜像内,任何可获取镜像的人员都能直接拿到密钥,若Dockerfile提交到代码仓库还会进一步扩大泄露范围。
修复方案
  • 先确认密钥的敏感等级:你用到的REACT_APP_STRIPE_PUBLISHABLE_KEY是Stripe官方规定可公开的前端密钥,本身设计上就允许暴露在前端,无需额外隐藏;如果你误把Stripe的Secret Key这类后端敏感密钥配置到了前端环境变量,必须立即调整。
  • 移除Dockerfile中的硬编码密钥:不要在Dockerfile里写死任何密钥值,改用Digital Ocean App Platform控制台的应用环境变量配置功能,在平台侧注入构建/运行所需的环境变量即可。
  • 敏感密钥全部下沉到后端:如果是需要保密的敏感密钥,绝对不要出现在前端任何代码或环境变量中,所有需要用到该密钥的业务逻辑都迁移到后端服务实现:前端调用自有后端接口,由后端携带密钥请求第三方服务,密钥仅保存在后端的环境配置中,永远不传输到前端。
  • 已泄露的敏感密钥立即作废:如果确认泄露的是不可公开的密钥,立刻前往对应服务后台(此处为Stripe)作废旧密钥,更换新的密钥,避免被盗用造成损失。

内容的提问来源于stack exchange,提问作者Carlos Muentes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:24:00