Claude Code的"下次不再询问"会导致密码泄露?
機械翻訳 / Machine-translated
@aifriends
AI Friends(https://aifriends.jp)のクロスポスト公式アカウント。AIツールの紹介・使い方・できることを、中学生でもわかるやさしい日本語で届けます。

機械翻訳 / Machine-translated
@aifriends
AI Friends(https://aifriends.jp)のクロスポスト公式アカウント。AIツールの紹介・使い方・できることを、中学生でもわかるやさしい日本語で届けます。
你有没有在Claude Code中点过"Yes, and don't ask again"?这个看似省去确认步骤的操作,实际上可能导致密码被公开到GitHub。本文将梳理事件经过,并总结从今天起就能采取的防范措施。
安全公司Apiiro于2026年11月5日公布了调查结果。据GIGAZINE的报道,在GitHub上发现的机密信息(密码、API密钥等不应对外公开的信息)共计2,539条。
调查对象是Claude Code生成的配置文件".claude/settings.local.json"。同名文件中处于公开状态的共有104,185个。
其中1,122个文件包含机密信息,涉及的组织多达63个。
据报道,其中还发现了医疗记录数据库的管理员密码,以及支付服务生产环境的认证凭据。
Claude Code在执行命令前会询问"是否允许执行?"。若此时选择"Yes, and don't ask again(允许并下次不再询问)",该命令就会被记录到配置文件中。
问题在于,命令的字符串会被原样保存。例如,如果连接数据库的命令中直接写入了密码,密码也会一并留存。
这个配置文件本应只存放在自己的电脑上。然而,一旦不小心将其纳入Git(管理源代码变更历史的工具)的追踪范围,就会被公开到GitHub。
Git的排除设置(.gitignore)只保存在各自的电脑上,在其他电脑上不起作用。而且,一旦文件进入Git管理,即使事后添加排除设置也无法挽回。
发现的机密信息分类如下:
文件越大,风险越高。在8KB以上的配置文件中,9.9%包含机密信息。这是因为使用时间越长,"下次不再询问"的记录也随之增多。
另一个值得关注的问题是检测工具的局限性。使用两种常见工具进行检测后发现,在含有机密信息的1,122个文件中,有215个两种工具均未能检出。
密码以"命令的一部分"形式被记录,而专门查找固定格式密钥的工具很容易将其遗漏。
事实上,类似问题在今年春天就已被指出。TechTalks于2026年4月报道了安全公司Lakera的调查结果。
调查人员对npm(分发JavaScript组件的服务)上约46,500个软件包进行了检查,发现428个包中含有同名配置文件。其中30个软件包的33个文件中存在可直接使用的认证凭据。
此次调查以GitHub为对象,规模大幅扩大。尽管公开渠道不同,但根本原因同样是"命令被完整保存"。
Claude Code开发负责人鲍里斯·切尔尼(Boris Cherny)于2026年11月7日在Hacker News上发表了评论。
他表示,Claude Code在创建该文件时已内置了将其加入Git排除对象的机制。因此,他认为泄露的文件应是由用户手动创建并纳入Git管理的。
与此同时,他也承认Claude Code此前从未对机密信息进行过脱敏处理,并表示正在研究添加认证凭据识别机制,以及在自动模式下防止机密信息被保存的方案。
讨论中也出现了反对意见:"白名单的结果是确定的,但让AI来审查自己的行为则存在不确定性。"这一问题目前尚无定论。
以下列举几种防护方式及其特点:
如果信息已经泄露,仅删除文件是不够的。必须将历史记录中残留的认证凭据设为无效,并重新签发新的凭据。
此外,切尔尼建议在GitHub等平台上启用机密扫描功能(自动检测机密信息)。
日本使用Claude Code的开发者越来越多,这并非事不关己。
以外包开发公司为例:5名成员各自点击"下次不再询问",执行连接客户数据库的命令。若其中一人不小心提交了配置文件,客户生产环境的密码就会出现在公开仓库中。
个人开发者同样面临相同风险。将业余项目放到GitHub时,如果混入了支付服务的密钥,就可能导致被盗用。
从团队管理角度,可以在CI(自动执行测试和检查的工具)中添加规则:"若.claude/目录出现在公开内容中,则构建失败"。TechTalks也提出了类似的防护措施。
Q. 我的仓库安全吗?
A. 请确认.claude/settings.local.json是否已被纳入Git追踪。同时检查文件内容中是否包含密码或令牌,以确保安全。
Q. 以后不该再使用"下次不再询问"吗?
A. 使用本身并无问题。在包含密码的命令中应避免使用,改为环境变量替代。
Q. 已经公开了怎么办?
A. 仅删除文件是不够的。请将历史记录中残留的认证凭据设为无效,并重新签发。
Q. 有了机密扫描就够了吗?
A. 并不足够。本次调查显示,215个文件未被两种常见工具中的任何一种检出。
请先检查自己的仓库,确认.claude/settings.local.json是否已被纳入Git管理。
本文转载自 AI Friends。