
“我是大树,一个差点开始放弃折腾的AGI学习与实践者。 最近在探索和从事的事儿:
这两天 AI 圈最大的瓜,莫过于 Claude Code 的"木马门"了。
如果你还没听说,事情大概是这样的:有个 Reddit 用户在逆向分析 Claude Code 的时候,发现它从今年 4 月 2 号的版本开始,就悄悄内置了一套检测机制,用来判断你是不是"中国用户"。检测结果通过隐写术编进系统提示词里,每次请求都发回 Anthropic 服务器。
昨天,Claude Code 团队负责人 Thariq Shihipar 公开承认了这件事,说这是个"实验",今天(7月2日)的新版本会完全删除这段代码。
但说实话——整件事最让我不舒服的,不是"检测了中国用户"这个行为本身,而是它整个手法的套路。
我来拆开给你看看。
我仔细看了各方的技术分析,梳理了一下这段代码的完整逻辑。简单来说,是三层检测 + 一层隐写传输。

代码会读取你系统的时区设置(通过 Intl.DateTimeFormat().resolvedOptions().timeZone),如果发现是 Asia/Shanghai 或 Asia/Urumqi,就标记为"疑似中国用户"。
不需要 IP 地址,不需要 GPS——你的电脑时区早就告诉了它答案。
代码检查环境变量 ANTHROPIC_BASE_URL,把它和一份硬编码的 147 条域名清单 做比对。这个清单里包括:
类型 | 数量 | 举例 |
|---|---|---|
中国科技/AI 实验室 | 23+ | baidu.com、alibaba-inc.com、bytedance.net、moonshot.ai、minimaxi.com、stepfun-inc.com、zhipu.com…… |
第三方 API 中转/代理 | 124 | 各种 Claude API 中转服务域名 |
关键词匹配(11条) | – | deepseek、moonshot、minimax、zhipu、bigmodel、baichuan、dashscope、volces…… |
而且这份清单不是明文存储的——用的是 Base64 + XOR 密钥 91 双重加密。解码之后才得到上面的域名和关键词。
“这还不算完,更"精彩"的在第三层。”
这是整个事件里最让我震惊的部分。
检测结果不是单独发一个请求回 Anthropic 服务器——那样太明显了。它的做法是:修改系统提示词中的日期行,通过肉眼无法分辨的格式差异来传递信息。
原始的系统提示词里有一行:
Today's date is 2026-07-01
检测结果不同,这一行的格式就发生微妙变化:
- 变成 / → 2026/07/01Today's 的撇号从 U+0027 换成 U+2019('→')ʼ)ʹ)一共 8 种组合(4 种撇号 × 2 种日期格式)。这些变化,你就算把 system prompt 打出来对着看也发现不了。但 Anthropic 的服务器端只要一解析就全知道了。
而且这段代码的函数名被压缩成 Crt()、Rrt(e)、e0t()、Zup() 这种样子。发布说明里一个字都没提。
“打个比方:你请了一个人来你家打扫卫生。他不是直接偷东西,而是在每天帮你整理书架的时候,根据你家窗帘的颜色,在书的摆放顺序上做一个只有他自己看得懂的标记。你完全不会注意到,但他每次回来都知道发生了什么。”
说完了"是什么",来聊聊"为什么"。
Anthropic 的理由是:防止未经授权的账户转售和模型蒸馏。
这个背景是真实的。Anthropic 之前就公开指控过,DeepSeek、月之暗面、MiniMax 等中国 AI 实验室通过 约 2.4 万个虚假账户 进行大规模蒸馏;阿里巴巴相关操作者更是进行了 约 2880 万次交互。
从 Anthropic 的角度看,它们确实有强烈的动机去阻断这些行为。被蒸馏意味着模型的核心竞争力可能被"偷走",账户转售则直接影响收入。
但问题来了——动机合理,不代表手段合理。
我看了很多社区的讨论,发现分歧挺大的:
批评方的观点 | 理解/辩护方的观点 |
|---|---|
这不就是间谍软件吗?用户完全不知情 | 蒸馏和转售的损失是真实存在的,Anthropic 有权利保护自己的资产 |
代码混淆 + 隐写 + 不告知,远超正常风控边界 | 如果把检测方法公开,攻击者自然就绕过了,那这个机制还有什么意义? |
Claude Code 有 Shell 和文件系统权限,这种信任关系被滥用了 | 很多软件都在做类似的遥测(IDE、浏览器),只是没被曝光而已 |
我自己的看法是:这件事的分水岭在于知情权。
你可以在后台做风险控制——这我没意见。但至少应该在发布说明里写一句:"本版本包含针对滥用行为的环境检测机制,检测结果会在请求中匿名回传。"
用户看到这个说明,选择继续用,那就是知情同意。
但 Anthropic 的做法是:隐藏、混淆、隐写、不告知——直到被逆向工程发现了才承认。
这不是"防滥用",这是在打信息不对称的牌。
“信任不是你关起门来说"我不作恶"就行。信任是你做的事,是对方知道且同意的。”
如果你是 Claude Code 的用户,我建议你做几件事:
1. 确认版本。 如果你用的是 v2.1.91 ~ v2.1.196 之间的版本,你的环境被悄悄"检查"过。今天的新版本已经删除了这段代码,建议更新。
2. 别过度恐慌。 这段代码检测的是你的时区和代理设置,不会读取你的代码文件或项目内容。它只在系统提示词层面做手脚。你的业务代码和数据是安全的。
3. 重新想想信任边界。 这件事真正值得思考的不是"Anthropic 坏不坏",而是——当一个 AI 编程工具有 Shell 权限、有文件读写权限、有网络访问权限时,你信任它的边界在哪里?

说实话,Claude Code 不是唯一一个能在你电脑上"为所欲为"的 AI 编程工具。
Cursor、GitHub Copilot、Codex、Windsurf……它们都有权限读你的文件、跑你的代码、访问你的网络。你只是"相信"它们不会做不该做的事。
而且说实话,没有完美的信任模型。
我写这篇文章不是为了号召大家抵制 Claude Code。说实话,我自己还会继续用——因为它在写代码这件事上的确强。
但经历过这件事之后,我对它的态度多了一层审视:我知道它在做什么,我用它是因为它在我的评估框架里依然利大于弊,而不是因为"我相信它不会作恶"。
这两者是有区别的。
你选择继续用,还是换方案?评论区告诉我你的想法。
如果这篇文章对你有一点启发:
你的每次互动,都是我继续写实战内容的动力。