一、开篇一篇文章引发的千层浪2026 年 6 月 30 日一名开发者在个人博客 thereallo.dev 上发表了一篇题为《Claude Code Is Steganographically Marking Requests》的文章。字数不多技术分析却极为扎实——他反编译了 Claude Code 2.1.196 版本的 JavaScript 代码逐行展示了其中一套隐蔽的分类标记系统。文章的发现可以浓缩为一句话Claude Code 在不告知用户的情况下根据 API 基址和系统时区将请求来源分类结果通过不可见的 Unicode 字符编码进系统提示词中。这篇文章迅速被转载至 Hacker News在短短几小时内冲上首页榜首最终获得 2444 个点赞。评论区汇聚了硅谷最资深的工程师、安全研究者、AI 创业者以及法律专家讨论覆盖了从技术实现到商业伦理、从 IP 法律到 AI 地缘政治的全光谱。这不是 Claude Code 第一次引发信任危机——今年 3 月Anthropic 因人为失误将 51 万行 Claude Code 内部源码泄露到了 npm 包此次发现的隐写代码正是社区从那次泄露的源码中挖出来的。但这一次它触及了一个比代码质量更根本的问题当一个拥有你电脑全部权限的工具开始用你看不见的方式做你看不懂的事情信任还能建立在什么之上二、技术解剖隐写标记是怎么工作的2.1 一个看似普通的日期字符串让我们先看问题的核心。当 Claude Code 构建发给模型的系统提示词时它会插入一句普通的日期声明Todays date is 2026-06-30.这是一句人畜无害的话。人类用户看到它模型也看到它一切都很正常。但 Claude Code 有能力悄悄改变这句话中的两个部分撇号字符Todays中的日期分隔符从-换成/这两个改动对人的肉眼几乎不可见但对机器却是一串清晰的信号。以下是研究者从解压后的 Claude Code 源码中提取出的核心逻辑function edp(known, labKw) { if (!known !labKw) return ; if (known !labKw) return \u2019; // 右单引号 if (!known labKw) return \u02BC; // 修饰字母撇号 return \u02B9; // 修饰字母素数符号 }这四个字符——普通 ASCII 撇号U0027、右单引号U2019、修饰字母撇号ʼU02BC、修饰字母素数符号ʹU02B9——在大多数等宽字体里几乎无法区分。但你看到的是一句英文日期模型拿到的却是一个经过了 4 种分类编码的信号。2.2 三层检测机制那么什么情况下哪个字符会被使用Claude Code 的检测逻辑分为三层第一层API 基址检测function Crt() { let baseUrl process.env.ANTHROPIC_BASE_URL; if (!baseUrl) return true; // 未设置跳过全部检测 return Rrt(baseUrl); } function Rrt(baseUrl) { try { let host new URL(baseUrl).host; return [api.anthropic.com].includes(host); } catch { return false; } }逻辑很清晰只有当ANTHROPIC_BASE_URL被设置为非官方端点非api.anthropic.com时标记机制才会激活。使用官方 API 的普通用户完全不受影响。第二层时区检测let cnTZ timezone Asia/Shanghai || timezone Asia/Urumqi;如果系统时区是中国时区日期分隔符会从-变为/——2026-06-30变成2026/06/30。这是一个相对明显的信号但同样只有仔细检查原始字节才能发现。第三层域名与关键词黑名单这是最核心的检测层。Claude Code 内置了一份加密的域名和关键词列表使用 base64 XOR密钥 91编码存储。解码后的关键词列表包括deepseek, moonshot, minimax, xaminim, zhipu, bigmodel, baichuan, stepfun, 01ai, dashscope, volces域名列表更长包含 147 个条目涵盖中国顶级域名.cn中国企业域名baidu.com、alibaba-inc.com、alipay.com、bytedance.net、kuaishou.com、xiaohongshu.com、jd.com、bilibili.co等中国 AI 公司域名moonshot.ai、stepfun-inc.com、iflytek.com等API 代理/中转站域名anyrouter.top、claude-code-hub.app、claude-opus.top、openclaude.me、proxyai.com、yunwu.ai、zenmux.ai等当ANTHROPIC_BASE_URL指向的 hostname 命中这些列表时对应的 Unicode 撇号就会被注入到系统提示词中。2.3 标记如何随请求发送关键问题不是改了字符而是这个被修改的日期去了哪里。研究者在源码中找到了调用链{ currentDate: Vla(GSe()) // 被标记的日期字符串 }这个被隐写标记修改过的日期字符串会作为系统上下文的一部分随每一次API 请求发送给 Anthropic 的后端服务器。Anthropic 在后端拿到这个日期字符串后可以通过检查 Unicode 字符来反推请求来源的分类结果。整套机制的设计目标很明确反滥用、反蒸馏、反非官方中转。但实现方式——用不可见的 Unicode 变体在用户不知情的情况下编码环境信息——却引发了巨大争议。三、从发现到爆发为什么这件事不是被公开的而是被挖出来的这里有一个重要的叙事转折这套隐写标记机制从未被 Anthropic 主动披露。它既没有出现在 Release Notes 中也没有出现在任何隐私政策或用户协议更新中。它是怎么被发现的答案要追溯到三个月前。2026 年 3 月底Anthropic 发生了一次严重的人为失误将 51 万行 Claude Code 内部源码意外泄露到了 npm 包中。社区迅速 fork 并分析了这批源码。6 月 30 日研究者在分析中定位到了这套隐写检测代码随即发表了详细的技术拆解。换句话说如果不是三个月前的泄露事故这套机制可能一直在运行而用户完全不知情。这个时间线本身就构成了信任危机的核心——透明不是 Anthropic 的选择而是事故的后果。发现的过程也很讽刺。Anthropic 用 XOR base64 来混淆域名列表但这种级别的混淆在逆向工程面前形同虚设——任何有一定二进制分析经验的开发者都能在几分钟内解码。原帖作者自己也表示惊讶我对他们做这件事的粗糙程度感到惊讶。他们本可以用同样的效果但降低被逆向工程发现的概率。这个领域叫 underhanded code……有更巧妙的方式实现类似目标。这段话在 HN 上收获了极高的赞同。它点出了一个尴尬的事实如果连行业顶级 AI 公司写的客户端代码都这么粗糙那 AI 驱动的vibe coding叙事该打多少折扣四、Anthropic 的回应这是一场实验事件发酵后Claude Code 团队负责人 Thariq Shihipar 在社交平台 X 上公开回应这是我们 3 月份启动的一项实验目的是防止未经授权的转售商滥用账户以及保护模型不被蒸馏。团队已经部署了更强的防护措施并且合并了 PR会在明天的版本中回滚这段代码。这段回应可以用四个字来概括承认了但不认错。实验这个词在这里承担了很重的修辞负荷。关键的时间线事实是代码从 3 月写入源码泄露时的版本已包含到 6 月 30 日被发现运行了至少三个月。三个月的时间足够收集大量的用户环境数据。一个没有用户知情权、没有退出机制、没有文档说明的实验在严格意义上更接近未披露的数据收集。更重要的是回滚不等于没发生过。公告中没有说明这些标记数据已经被如何使用、存储在哪里、是否会删除。从合规角度看在欧盟 GDPR 的管辖范围内未经用户同意的隐写数据提取很可能构成违法——即使出于反滥用的目的。五、HN 千评社区四种声音的深层逻辑HN 上的讨论之所以达到 2444 赞、超过 1000 条评论的量级是因为这件事触及了多个维度每个维度都激发了一个不同群体的核心关切。我们将社区反应归纳为四种立场每种立场背后都有一套完整的逻辑链条。5.1 务实派「塑料猫头鹰」防御论这是 HN 上最具影响力的辩护声音核心比喻来自一条高赞评论这就像院子里有鸟的问题所以你买了塑料猫头鹰。猫头鹰吓走了大部分鸟但不是全部所以你又买了超声波装置。但买了新装置并不意味着你会把猫头鹰撤掉——现在你有两层防御。这一派的核心观点是客户端隐写只是多层防御体系中的最表层真正的检测逻辑在服务端低成本的第一层过滤足以阻止大部分非技术性的代币倒卖者每层防御单独看都不完美但叠加起来形成有效的防护网商业公司在保护自身利益时采取技术措施是正当的不应被过度道德化这一立场在工程师群体中获得了广泛认同因为它建立在一个基本的工程直觉之上安全是分层的每层都要有。5.2 技术派实现太粗糙但这暴露了更大的问题技术派的关注点不在该不该做而在为什么做得这么烂。XOR base64 混淆等同于明文。任何有能力的逆向工程师都能在几分钟内解码这不是安全措施这只是增加了一点点翻找的成本。客户端检测本质上是不可靠的。绕过成本极低——改 hostname、改时区、patch 二进制文件、包一层进程代理——任何严肃的滥用者都能在几分钟内绕过。真正惩罚的是谁恰恰是那些做合法但非常规事情、又最容易留下指纹的普通开发者——通过企业合规网关路由的用户、使用内部代理的团队、在研发阶段接入自定义 API 基址的研究者。Anthropic 的代码质量也成了讨论焦点。多位评论者指出这个粗糙的实现本身就令人怀疑 Claude Code 的整体工程质量——它是不是正在变成一段vibe coded产品一条高赞评论将这种讽刺性总结得很到位如果 AI 原生工程领导者的客户端代码都写得这么懒那关于 AI 编码能力的整个叙事是不是该主动打个折了5.3 伦理派信任不是技术问题是透明度问题这一派的论述触及了事件最根本的紧张关系。他们为什么选择隐藏是核心追问。如果这真的只是一个合理的反滥用机制为什么不写到文档里为什么不在隐私政策中披露为什么不用显式的遥测字段telemetry field而不是隐写的 Unicode 变体答案在伦理派看来不言自明因为 Anthropic 知道用户不会同意。一个能在文件系统级操作的客户端工具如果公开声明我们会检测你的网络环境和地理位置并编码进你的请求中用户的反应不会是合理而是这还不算间谍软件由此引出一个更重要的原则对于高权限工具透明不是加分项而是准入条件。编程 agent 已经在使用一个极其危险的权限模型——它可以读取你的代码仓库、执行 Shell 命令、安装软件包、修改文件、推送 Git 提交。绝大多数开发者接受这种风险是因为生产力提升值得也是因为他们默认客户端的行为了解于掌握了。当一个客户端开始在你看不见的地方做你看不懂的事情这个默认的前提就被动摇了。一条被高度引用的评论将这个道理总结得极为精辟信任是在最无聊的地方挣来的。一个看似无害的日期字符串偏偏不是它看起来的样子——这让人怎么相信客户端里其他看似无害的代码5.4 法律和哲学派IP 法律真空与 hypocrisy 悖论这是讨论中最有学术深度的一层。其核心论点是一个令人不安的矛盾AI 公司在训练模型时主张「fair use」用于使用互联网上的版权材料但当别人试图从他们的模型输出中学习时他们突然用技术手段隐写标记、出口管制等来阻止。一条获得大量赞同的评论将这个矛盾表述得极为直接大型 AI 公司的虚伪论证让我头晕。三年来他们用人类读书后创作类比来论证训练 AI 使用版权作品。现在突然不让我们对 Claude 输出做同样的类比了。更深入的法律分析进一步揭示了一个制度性漏洞AI 模型的输出目前不在传统知识产权的保护范围内。机器生成的输出不具备版权资格、不是专利、不是商业秘密因为在销售使用权限而不是保密、也不受合同法的约束难以约束第三方。在这种法律真空下技术措施——包括隐写标记——成了 AI 公司保护模型输出的唯一可用手段。但这恰恰也让事件的严重性升级了。如果法律框架本身无法解决 AI 时代的知识产权归属问题技术手段的被滥用就几乎是注定的。隐写标记这次被用来反滥用下次可能被用来做什么六、信任危机的五个维度将 HN 讨论中的各路观点进行结构化梳理可以提炼出信任危机的五个核心维度6.1 知情权用户不知道发生了什么Claude Code 的隐私政策中没有提及这套机制。Release Notes 中没有提及。用户界面上没有任何提示。如果不是 3 月份的源码泄露事故也许它永远是个秘密。在一个合理的设计中任何形式的用户环境检测都应该至少满足以下三个条件之一有文档说明、可被用户关闭、有明确的用途披露。Claude Code 的隐写标记一条都没做到。6.2 分类标准基于国籍的用户画像域名列表和关键词列表的构成方式实质上构成了以国籍为基础的分类系统。检测Asia/Shanghai时区、标记所有中国大陆域名和 AI 公司、将中国用户特征编码进 API 请求——这不是一个技术中立的反滥用机制而是一个基于地理和政治边界的分类体系。更令人不安的是系统的可扩展性。如果今天可以标记中国时区和中国 AI 公司明天是否可以标记使用 VPN 的用户后天是否可以标记批评 Anthropic 的开发者6.3 双重标准训练时 fair use保护时隐写AI 行业面临的核心悖论在本次事件中被前所未有地聚焦训练数据获取时主张开放fair use、人类学习类比模型输出保护时主张封闭隐写标记、出口管制、ToS 限制。开发者的困惑是真实而理性的如果从互联网上爬取数据训练模型是像人类读书一样的学习那为什么从模型输出中学习就是蒸馏和盗窃这两者之间的逻辑区分是什么6.4 客户端安全隐蔽代码的寒蝉效应编程 agent 的权限模型已经在走钢丝。它们已经可以读写你的文件系统、执行你的 Shell 命令、修改你的 Git 历史、甚至在某些配置下推送远程仓库。在这样的高信任场景中任何未经披露的客户端行为都会产生寒蝉效应。如果 Claude Code 可以秘密修改系统提示词它还可以秘密做什么这个问题没有答案因为它需要的不是回答而是信任——而信任正是在这一类行为中被消耗掉的。6.5 防御失效真正的滥用者不怕普通开发者买单这是社区评论中最常被点出的一个讽刺性事实这套机制的绕过成本极低。修改系统 hostname → 绕过域名名单修改系统时区 → 绕过时区检测patch 二进制中的字符映射表 → 彻底失效用进程代理包装ANTHROPIC_BASE_URL→ 完全透明换句话说真正有动机、有能力的滥用者代币倒卖商、蒸馏攻击者根本不会被这套机制阻止。它唯一能成功标记的是那些根本不知道自己在被标记的普通开发者——他们在做完全合法但稍微非常规的事情比如通过企业合规网关路由、使用内部 API 代理、在开发环境中调用自定义端点。这是一套惩罚合规者、放过违规者的机制。它的存在更多是为了给 Anthropic 提供内部的使用数据画像而不是真正阻止滥用。七、更大的图景AI 冷战与信任工具的悖论7.1 时间线这不是一个孤立事件Claude Code 隐写标记事件必须放在 AI 地缘政治的大背景下理解。以下是过去半年的关键时间线时间事件2025 年 11 月Anthropic 指控中国黑客组织利用 Claude 进行网络攻击2026 年 2 月指控 DeepSeek、月之暗面等通过 1600 万次对话蒸馏 Claude2026 年 3 月Anthropic 源码泄露事故51 万行代码进入 npm2026 年 6 月指控阿里巴巴通过 2.5 万账号、2900 万次交互大规模蒸馏2026 年 6 月中旬美国商务部对 Claude Fable 5 实施出口管制6 月 30 日解除2026 年 6 月 30 日源码泄露中被发现的隐写代码被公开发布2026 年 7 月 1 日Thariq Shihipar 公开回应承诺回滚这组时间线揭示了一个清晰的图景AI 地缘政治正在从政策层面向技术层面渗透而开发者工具成为了新的战场。7.2 更大的悖论工具在被武器化Claude Code 最初被设计为一个生产力工具。但当它开始在系统提示词中编码用户的国籍和网络环境信息时它客观上承担了一种与生产力工具完全无关的功能情报收集。这不是说 Anthropic 在为中国政府或美国政府做间谍工作。它的动机很可能是纯粹商业的——防止模型蒸馏、防止代币倒卖、保护自己的商业模式。但手段的选择决定了后果。用不可见的 Unicode 变体来秘密编码用户信息这种行为本身就是信任的对立面。由此引出的是一个更深层的问题在 AI 冷战的时代开发者工具还能保持中立吗当 GPT-5.6 的全面发布被美国政府以网络安全风险为由暂缓后于 7 月 8 日放行当 Claude Fable 5 被列入出口管制名单当 Claude Code 在客户端嵌入针对中国用户的检测代码——每一个 AI 工具都在无意中变成了地缘政治的载体。7.3 开源的意义被重新定义在这一事件中开源社区扮演了一个意想不到的角色揭发者。隐写代码之所以被曝光是因为 Anthropic 的源码泄露事故使社区得以进行审计。如果没有那次事故这套机制可能仍在运行。这个事实本身就为闭源 vs 开源的辩论投下了一颗重量级的砝码。多位 HN 评论者表示这一事件促使他们重新评估闭源 AI 工具的可信度。一条评论写道这就是为什么我需要看到源代码。不是因为我一定会读而是因为别人会读而且当有人发现问题时我们都会知道。对于中国的开发者社区这个观点的冲击力更大。如果一家美国 AI 公司可以在客户端中秘密嵌入针对中国用户的检测代码那么国产替代就不再仅仅是一个情怀选择——它正在成为一个安全需求。八、结语透明是唯一出路Claude Code 隐写标记事件不应该被简化为Anthropic 是坏人的叙事。Anthropic 有正当的商业利益需要保护——模型蒸馏和代币倒卖确实在损害 AI 公司的商业模型也间接推高了所有合法用户的成本。但正当的目的不能为不透明的手段背书。这个事件最值得被记住的教训是当 AI 工具从聊天窗口升级为高权限工作台用户和工具提供商之间的社会契约就需要被重新定义。这份契约至少要包含以下条款知情权任何客户端中的检测、分类、标记行为必须有文档说明。可关闭性用户应有权选择退出任何非核心功能的数据收集。分类不等于判断基于国籍、地理位置的用户分类应始终被明确标注其目的和限制。客户端行为预期一个拥有文件系统和 Shell 权限的工具其行为必须符合可预测的最低标准。研究者在原文中的结尾值得被引用开发者工具可以执行条款。API 提供方可以检测滥用。公司可以保护自己的模型。这些都没问题。但当一个拥有文件系统和 shell 权限的工具开始把归因标记藏进不可见的提示词标点里时正确的反应就是审视而不是默认信任。信任是在最无聊的地方挣来的。一个日期字符串是不是真的只是一句日期——这个问题本不该需要被问但当它被摆上台面时答案的方向就已经决定了信任的去向。对于每一个在用的 AI 开发工具上运行git diff和npm install的开发者来说这个事件是一面值得深思的镜子你信任你的工具但它值得你的信任吗参考来源thereallo.dev: Claude Code Is Steganographically Marking RequestsHacker News: Claude Code Is Steganographically Marking Requests (item?id48734373)腾讯云开发者社区: Claude Code被曝暗藏间谍代码专门检测中国用户blog.ccino.org: 看不见的水印Claude Code 被发现在请求里悄悄打标记51CTO: Claude Code 封禁中国用户始末AIMadeTools: Claude Code Is Steganographically Marking Requests: What It Means