你的编码代理能读 .env,密钥该放到别处
来源:dev.to — 2026-10-24
📋 概述
作者给 Claude Code 开了 shell 权限,看它调试失败的 OpenAI 调用——它跑了 cat .env。密钥随之进了对话、进了服务商日志、也留在磁盘上的编辑器会话历史里。什么都没出错,这才是问题:只要代理能读文件能执行命令,明文密钥就会自己走出去。代理有四条很无聊的泄漏路径:调试 401 时把文件读进提示词;git add -A 或复制真文件做 .env.example 时提交;printenv、打印配置的测试、带请求头的调试日志经标准输出回到模型;以及自动起草的 issue 里附上含 Authorization 的堆栈。把 export 写进 .zshrc 更糟:每个子进程都继承它,包括代理和它启动的一切。
🔑 核心要点
- 一次 cat .env 就让密钥进了对话、服务商日志和编辑器会话历史
- 代理泄漏不需要恶意,四条路径全是正常调试的附带产物
- printenv、测试打印配置、带请求头的日志都会经标准输出回到模型
- export 进 .zshrc 比文件更糟,所有子进程都会继承它
- 桌面系统的加密凭据库有访问控制,别的进程要取会被询问
💡 金句
“Nothing malicious happened. That is exactly the problem: nothing has to go wrong for a plaintext secret to travel once an agent can read files and run commands.”
译:没有发生任何恶意行为。这正是问题所在:只要代理能读文件、能跑命令,明文密钥不需要任何意外就会流出去。
← 返回 dev.to 首页