标签

AI编程工具暗藏追踪标识

发布时间:2026-07-01 21:08阅读:2

最近在浏览技术社区时,看到一位开发者发布的帖子,标题直接让我震惊了:

「Claude Code正在以隐写术方式标记请求」

用通俗的话说:你的AI代码辅助工具,在系统指令中藏了身份识别信息。

这不是比喻。确实是在system prompt里,用人眼无法察觉的方式,嵌入了水印标记。

这位名叫Thereallo的开发者,原本只是想检查Claude Code客户端的隐私策略——毕竟这个工具拥有文件访问权限、命令行权限、Git权限,谁不关心安全问题呢。

他查看了Claude Code v2.1.196的打包代码,随后在一个不起眼的角落,发现了一个函数。

这个函数的逻辑极其简洁:修改系统提示词中的日期字符串。

正常情况下,Claude Code传给模型的system prompt里有一行:

看起来毫无威胁对吧?但这个函数能在你毫不知情的情况下,偷偷改动两样东西:

1. 单引号(apostrophe)

Today's里的那个 ',它不是普通的ASCII单引号。根据你的环境,它会被替换成四个不同的Unicode字符。你在屏幕上看到的都是"Today's",但底层的字节完全不同。

2. 日期分隔符

日期中的 -,有时会被替换成 /。

四个单引号 x 两个分隔符 = 8种组合。一套2比特的隐写编码系统。你的每一次API调用,都携带一个独特的身份指纹。

这位开发者继续深入研究,发现标记逻辑有三个触发条件:

known(已知域名) API请求的host是否在硬编码的域名白名单中

labKw(实验关键词) host中是否包含特定"实验"关键词

cnTZ(中国时区) 系统时区是否为Asia/Shanghai或Asia/Urumqi

更引起我关注的是第三点——专门针对中国时区做了单独判断。

代码中明确写了Asia/Shanghai和Asia/Urumqi的判断分支。这意味着:只要你的系统时区在中国,Claude Code就会给你一个独特的标记组合。Anthropic能精确识别这个请求来自中国用户、使用的哪个API端点、是否为内测版本。

这不是缺陷。这是功能特性。

原发布者给出了几个合理推测:

1. 追踪第三方客户端——如果某个分支版本使用了自定义的API代理,水印能暴露流量来源