乐于分享
好东西不私藏

51万行源码泄露!Claude Code栽在.js.map上,你的项目也在裸奔吗?

51万行源码泄露!Claude Code栽在.js.map上,你的项目也在裸奔吗?

愚人节“惨案” · AI独角兽的低级失误

2026年3月31日,Anthropic旗下AI编程神器Claude Code v2.1.88在npm发布时,一个59.8MB的cli.js.map文件被意外打包上传。

安全研究员仅用几分钟,就通过这个Source Map还原出:

  • 51.2万行TypeScript源码、1906个源文件

  • 40+工具模块、50+斜杠命令、20+未发布特性

  • 核心Prompt逻辑、权限系统、“卧底模式”等商业机密

更讽刺的是:这是14个月内第二次因Source Map泄露源码(2025年2月已犯过一次)。

.js.map · 调试神器,也是泄密核弹

.js.map(Source Map)是JSON文件,作用是把压缩/转译后的生产代码,映射回你写的原始源码(TS/JSX/Vue),让浏览器DevTools能定位到原行号、原变量名。

当.map文件被打包进npm/CDN并公开时:

  • 任何人可一键还原完整未混淆源码(含注释、变量名、业务逻辑)

  • 暴露API地址、鉴权逻辑、加密算法、硬编码密钥

  • 竞品可直接抄走核心架构、Prompt策略、工具调用机制

  • Bun构建默认生成Source Map,生产环境未关闭

  • .npmignore未添加*.map过滤规则

  • package.json的files字段未正确配置

  • 未纳入CI/CD安全检查,两次踩同一个坑

Source Map泄露的3大安全死穴

1. 核心技术裸奔,商业护城河崩塌

Claude Code的Prompt工程、Agent调度逻辑、工具系统是核心竞争力,泄露后等于把“产品圣经”免费送给所有竞品(Cursor、Copilot、国内AI助手等)。

2. 攻击入口大开,业务风险飙升

  • 黑客可分析权限判断、接口校验、签名逻辑,伪造请求、绕过限制

  • 爬取未公开接口,批量刷数据、薅羊毛

  • 发现前端漏洞,发起XSS、CSRF等攻击

3. 合规与声誉危机

  • 泄露内部设计、未发布功能,引发社区信任危机(如“卧底模式”争议)

  • 被迫紧急撤包、DMCA投诉,品牌形象严重受损

必做 · Source Map安全配置清单

01

立即自查

  • 访问https://你的域名/xxx.js.map,看是否能下载

  • 打开F12→Sources,是否能看到src/xxx.ts原文件

  • 检查npm包/CDN产物,是否包含.map文件

02

构建配置

  • 开发环境:source-map/inline-source-map(放心用)

  • 生产环境(推荐):

Webpack:devtool: ‘hidden-source-map’(生成但不暴露)或false

Vite:build.sourcemap: false或’hidden’

Bun:build.sourcemap: ‘none’

Rollup:sourcemap: false

03

发布流程加固

  • .npmignore/.gitignore强制添加:*.map

  • package.json的files字段只包含必要产物,排除.map

  • CI/CD加入安全扫描:禁止生产包包含.map文件

  • 上线前人工/自动化校验:产物中无.map

别让调试文件毁了你的项目

Claude Code事件不是个例:苹果App Store、多家大厂都曾因Source Map泄露源码。

Source Map是调试工具,不是生产标配。生产环境公开.map,就像把公司保险柜钥匙挂在大门口。

所以立即检查一下你的项目,看看你的生产环境是否还在裸奔Source Map?