如何在CRA与Express项目中安全存储API密钥并规范服务端部署
问题答复
1. CRA构建是否会包含根目录的config.js等文件?
不会。CRA的默认构建逻辑只会处理public和src两个目录下的内容,最终生成的build目录仅包含这两个目录编译、压缩后的前端产物,根目录下的server.js、config.js等非public/src路径的文件完全不会被打包进build目录,不会跟着前端静态资源暴露给用户。
2. 根目录存放服务端代码和API密钥的安全性
分场景判断:
- 本地开发/私有单人部署场景:只要你已在
.gitignore中配置忽略了config.js等敏感文件,不会将密钥提交到代码仓库,同时Express静态托管仅指向build目录,没有开放根目录的访问权限,这种操作是安全的。 - 多人协作/公共服务器部署场景:有一定泄露风险。更稳妥的方案是不要把密钥明文写在项目目录下的配置文件里,改为读取系统环境变量存储密钥,避免配置文件泄露导致密钥丢失。
注意:Express配置静态托管时,一定要精准指定路径为
./build,不要写./这类指向项目根目录的配置,避免误将根目录的敏感文件对外开放访问。
内容的提问来源于stack exchange,提问作者lovekenly
相关产品推荐
相关产品推荐

