扫描器换目标了
以前自动扫描器最爱找的是 /.env。@timwork_notes 发帖说,现在它们开始找你的 AI 代理配置:他看到的一份 10 月 19 日生产日志里,一个扫描器在 3.2 秒内发出 108 个请求,路径包括 /.env.anthropic、/.env.openai、/.claude/settings.json 和 /.aws/credentials。作为对比,正常人类访客 57 秒里只访问了 25 个路径;那个扫描器在第 2 个请求时就被封掉了。
问题的根源很朴素:如果你的部署方式是把整个仓库根目录发到线上,那么仓库里的 .claude/ 文件夹、各种 .env.* 文件也会一起被发上去,任何人都能按路径直接下载。
.claude/ 里可能有什么
按 Claude Code 官方文档,项目里的 .claude/settings.json 是团队共享配置,常放权限规则、hooks、插件和项目需要的环境变量(env 块)。.claude/settings.local.json 是个人覆盖配置。也就是说,这个文件夹本身就是给开发环境用的,不是给网站访客看的;如果有人在 env 里写过 Key,或者 hooks 里有内部地址,泄露的就不只是「配置」。
帖子给的修复方法
- 在
.dockerignore里加上.claude/、.env.*和.git/; - 在你的部署平台或 Web 服务器的忽略/拒绝规则里也加上同样的路径;
- 部署后自己请求一次
/.claude/settings.json,应该得到 404。拿到 200 就说明还在泄露。
再补几条习惯
- 配置里不放真 Key。 Key 走环境变量或密钥管理工具注入,不写进任何会进仓库的文件。
- 只发布构建产物。 让网站根目录指向
dist/、public/这类输出目录,而不是仓库根目录。 - 顺手查
.git/。 能下载/.git/config的站点,往往整个历史都能被拉下来,里面可能有你早就删掉的旧 Key。 - 已经暴露过就当已泄露处理。 去对应平台的控制台吊销旧 Key、新建一个,再查最近的用量记录,不要只是把文件删掉了事。
如果你想把 Claude Code 放在一台常开、整机独享的新加坡 Mac mini 上长期运行,可以了解 Zumac.Ai,咨询 Telegram @singatao。
