乐于分享
好东西不私藏

Anthropic源码又泄露了,让你把这个瓜吃明白?(Claude Code被动开源)

Anthropic源码又泄露了,让你把这个瓜吃明白?(Claude Code被动开源)

Anthropic源码又,又,又,又泄露了…

到底发生了什么事?

简单说,Claude Code在发布npm包时,一不小心把一个调试50多M的.map文件给打包进去了

多了个文件而已,听上去,是不是没什么?

这个.map是干嘛的?

你可以理解为:源代码原版是TypeScrip写的,但发布时会把它压缩、混淆成一堆难以阅读的JavaScript天书,而那个.map文件,就是“天书”和“原版”之间的完整对照字典可以通过这个字典,将Claude Code源码全家桶,全部被还原曝光

Claude Code全家桶被还原曝光了哪些

1. 核心架构:4.6万行的核心AI引擎(QueryEngine.ts)、2.9万行的工具定义、85条斜杠命令系统全部一览无余;

2. 未发布功能:包括名为 KAIROS 的7×24小时后台助手、可以隐藏AI生成痕迹的“卧底模式”、甚至还有电子宠物系统,这些还没上市的新玩意也被剧透了;

几小时内,代码在GitHub上被疯狂备份、传播,根本拦不住。

这么低级的错误,究竟是怎么发生的?

最让人无语的来了,这根本不是高明的黑客攻击,纯粹是流程上的低级失误叠加,而且,这是第二次了!

简直是人为与流程的“双重漏洞”

首先,官方已经承认部署流程里有“几个手动步骤”,其中一个出了错。

其次,工程师也坦白了有人为了自己团队调试方便,主动选择了在发布版里包含.map结果在方便自己的同时,也“方便”了全世界。

最核心的问题:这个流程依赖人工检查,没有自动化防线,才导致同一个坑,踩了两次。

吃瓜归吃瓜,从技术上来说,到底应该如何根治此类问题呢?

根据我这些年的研发管理经验:指望人不犯错是不现实的,杜绝这类问题的核心思想是,用自动化的工具和强制的流程,取代不可靠的人工记忆和操作。

1. 自动化安检:在CI/CD流水线里,集成像GitGuardian这样的代码扫描工具。每次构建发布,自动检查包里有没有.map.env、密钥等敏感文件。有就报错,发布失败。

画外音:哪些一定不能发。

2. 强制白名单:在package.json里明确列出只能发布这些文件,其他的一律不准带,想犯错都没机会。

画外音:只能发布哪些。

3. 环境隔离:在构建脚本里写死,生产环境的构建命令会自动剥离 source map,开发环境的则保留。从根源上隔离。

画外音:开发环境,测试环境,沙箱环境,线上环境都要隔离。

最后,问题来了:

1. 上一次故障,你觉得他们复盘过没有?

2. 我能想到的,你觉得他们想得到吗?

可是,为什么没有解决呢?

世界,真是一个巨大的草台班子。