展开知识库目录

API Key 和环境变量怎样放,避免进入仓库、构建产物和日志

环境变量只是传递方式,不自动安全。

先把问题看准

密钥必须能轮换、撤销且不进入产物

环境变量只是传递方式,不自动安全。需要确认密钥存储、注入、日志脱敏、权限范围、构建和前端边界,泄漏后能快速撤销。

第 1 步

分类与最小权限

记录每个密钥的服务、环境、所有者、scope、有效期和可执行动作,开发与生产分离。

把涉及的文件、目录、版本、命令和实际输出写进记录;代码变化同时保留 diff 与测试结果。

第 2 步

选择存储位置

本地使用受控配置或密钥管理,CI/CD 使用平台 secrets,生产使用适当的密钥服务;不写入仓库。

确认“选择存储位置”已经有可回查结果,再进入“阻止进入前端和构建”;依据仍然来自猜测时,把缺口单列并停在当前步骤。

第 3 步

阻止进入前端和构建

检查打包变量前缀、静态产物、source map、容器层和配置模板,任何浏览器可见值都视为公开。

确认“阻止进入前端和构建”已经有可回查结果,再进入“清理日志和错误”;依据仍然来自猜测时,把缺口单列并停在当前步骤。

第 4 步

清理日志和错误

对请求头、连接串、URL 参数和异常对象脱敏,禁止调试打印完整环境。

确认“清理日志和错误”已经有可回查结果,再进入“扫描与轮换演练”;依据仍然来自猜测时,把缺口单列并停在当前步骤。

第 5 步

扫描与轮换演练

扫描历史、产物和日志;发现泄漏先撤销轮换,再清历史与缓存,记录影响。

需要修改时先限定文件和行为范围,无法说明回滚方式或影响面的动作先不执行。 完成后把证据归入“密钥位置清单与泄漏检查结果”。

完成后应能在“密钥位置清单与泄漏检查结果”中找到与这一步对应的记录;仍需靠猜测补全,就停在这里。

做到这里就可以停

清单要覆盖密钥完整生命周期

从创建、授权、存储、注入、使用、监控、轮换到撤销都有责任人。仅把 `.env` 加入 `.gitignore` 远远不够。

进一步核对

参考资料与核对入口