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

如何避免React构建产物中process.env内容被暴露?

React环境变量暴露的本质与解决办法

首先得掰明白一个核心事实:前端代码里的任何变量,包括从.env里读的,最终都会被打包进静态文件,浏览器加载后必然能被开发者工具查到。你用.env的目的从来不是隐藏变量,而是:

  • 开发阶段统一管理配置,不用硬编码到代码里
  • 区分开发/生产等不同环境的配置(比如开发用测试接口,生产用正式接口)
  • 避免提交配置到代码仓库(通过.gitignore忽略.env文件)

所以你觉得“和直接明文写配置没区别”,从最终暴露的角度看确实没错,但.env的价值是开发流程上的,不是安全层面的——前端本来就藏不住任何代码里的内容。

不能做的事

绝对不要把敏感信息(比如API密钥、数据库密码、OAuth令牌这类)放到前端的.env里,不管加不加前缀,只要被打包进前端代码,就等于公开了。

正确的处理方式

  1. 敏感信息全放后端:所有需要保密的配置,统一存在后端的环境变量里(比如Node.js的.env),后端自己用这些信息处理逻辑,前端完全碰不到。
  2. 后端做代理转发:如果前端需要用到依赖敏感信息的服务(比如调用第三方API),别让前端直接调用,而是前端请求自己的后端接口,由后端拿着敏感密钥去调用第三方服务,再把结果返回给前端。
    举个例子:你要调用需要token的GitHub API,别把token给前端,而是后端写一个/api/github接口,前端请求这个接口,后端用自己存的token去请求GitHub,再把数据返回给前端。
  3. 规范使用React的.env规则:用create-react-app创建的项目,只有前缀为REACT_APP_的环境变量会被打包进前端代码,所以敏感信息别加这个前缀,避免被误打包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 16:12:30