近期 Reddit 社区一篇逆向分析帖子引发轩然大波——有开发者发现 Claude Code 会通过一套极其隐蔽的机制,在不依赖 IP 地理位置的情况下识别用户是否来自中国大陆,并把这个判断结果通过肉眼不可见的 Unicode 字符"偷偷"传回服务器。本文基于社区逆向分析内容梳理这次争议事件的技术细节和后续影响,供读者了解事件全貌,不代表本站对相关动机的定论。
不看 IP:两条不依赖网络出口的识别路径
传统地域封锁:依靠 IP 地理位置判断,用户开代理即可绕过
Claude Code 走的路径:完全不依赖网络出口 IP
根据逆向分析者的描述,Claude Code 用了两条完全独立于网络层的信号来判断用户地区:
路径一:操作系统本地时区
读取 macOS / Linux 系统设置的本地时区。
逻辑:即便用户使用代理访问网络,日常生活中电脑的
时区设置几乎不会更改,中国用户大多设置为北京时间
路径二:ANTHROPIC_BASE_URL 环境变量
国外用户直接请求 api.anthropic.com,无需设置该变量;
国内用户由于无法直连,往往通过中转站访问,需要把
这个环境变量改成中转站地址
分析称,Claude Code 本地会把这个环境变量里的域名提取出来,与一份内置列表做比对——据称这份列表包含147 个域名,涵盖国内主流大厂的内网代理域名及第三方中转站地址,且列表以 Base64 编码后又做了一次异或运算存储,并非明文可读。
识别结果如何被"偷偷"传回:藏在日期字符串里
每次请求发送前,Claude Code 会在系统提示词中拼接一行
普通的日期信息,类似:
Today's date is 2026-06-30.
如果本地判定为中国大陆用户,这行文字会被做两处
Unicode 层面的替换(视觉上完全无法察觉):
1. "Today's" 中的单引号(U+0027)替换为另外三个
视觉上完全一致的 Unicode 字符之一
2. 日期分隔符:如果系统时区为 Asia/Shanghai 或
Asia/Urumqi,连字符 "-" 替换为斜杠 "/",
即 2026-06-30 变为 2026/06/30
分析者将这种手法称为"隐写术"(steganography)——把信息隐藏在看似完全正常的载体里。两个信号叠加,构成一个 2-3 比特的分类标记,服务器端只需要机器识别这两处 Unicode 差异,无需额外的检测逻辑,就能判断请求是否来自中国大陆时区环境的用户。
争议焦点:为什么不直接记录在服务端
争议的核心质疑:
如果目的是安全日志或反滥用检测,为什么不直接记录
在服务端,而要把信息编码进用户看到的输出文本里?
这正是这次事件引发广泛讨论的关键——把身份识别信息隐藏在用户交互内容本身,而非服务端独立记录,这种做法的透明度受到了开发者社区的质疑。不同信源对"官方回应"的转述存在差异:有分析提到 Anthropic 方面表示相关标记"用于帮助检测和防止 API 密钥滥用""改善模型的责任部署",但对于是否涉及地域信息采集未做直接否认,仅表示相关标记"仅用于安全和合规目的"——具体表述以 Anthropic 官方正式声明为准。
事件背景:近期出现的大规模封号现象
事件曝光前后,国内 Claude 用户反映出现较大范围的
账号封禁现象,多个 Max 订阅账号被封
这次逆向分析事件的曝光,正值国内用户反映近期出现较大范围账号封禁的敏感节点,因此进一步放大了社区的关注度和讨论热度。不少开发者对"AI 编程工具是否应该保持中立"这个议题展开了讨论。
对开发者意味着什么
1. 如果你通过中转站或公司内部代理使用 Claude Code,
理解这次事件有助于判断自己的使用方式是否可能
触发相关识别机制
2. 该事件目前主要基于社区逆向分析结论,建议关注
Anthropic 官方后续是否会发布更正式、更详细的说明
3. 涉及生产环境代码交付的团队,可以关注这类"输出
内容中被动嵌入元数据"的现象是否会影响代码审查
或知识产权归属判定
总结
这起事件把"AI 编程工具是否应该在用户不知情的情况下"嵌入身份识别信息"这个问题摆在了台面上。无论最终官方给出怎样的正式解释,这次逆向分析所展示的技术手法本身,确实提醒了整个行业——AI 工具厂商在处理合规、反滥用等诉求时,透明度和用户知情权同样是需要认真权衡的因素。本文所述内容主要基于社区逆向分析报道整理,具体细节和官方定性建议持续关注权威信源更新。
来源:Anthropic偷偷在Claude Code植入隐形代码,只为识别中国用户 — 优设网,综合Reddit社区逆向分析报道整理