<!-- title: AI灌水围攻开源，社区反击战开打 -->
<!-- domain: trending -->

**导语：** 海外技术社区这一年吵得最凶的，不是哪个模型又登顶了，而是一件更底层的事：AI 把“生成内容”的成本打到零之后，软件供应链和开源生态正被灌水冲得东倒西歪。幻觉包名被人抢注埋伏、维护者被 AI 生成的垃圾 PR 淹到罢工、Cloudflare 干脆把“拦截 AI 爬虫”做成默认开关还开始按次收费。这三场仗国内几乎没人系统拆过，但每一条都直接关系到你每天 `npm install` 的那条命令。

---

## 一、slopsquatting：AI 推荐的包名，正在被人提前抢注

先说最贴近每个开发者钱包的一件事。

你让 Claude 或者 ChatGPT 写段代码，它顺手给了你一行 `import`，推荐一个包。传统认知里，包名错了顶多安装报错，浪费十秒钟。但海外社区从 2025 年开始意识到一个问题：**大模型的幻觉是稳定的**——同一个提示词问一百遍，它可能一百次都推荐同一个不存在的包名。

这就给攻击者留了一扇门：既然我知道你会稳定地推荐 `foo-helper-pro` 这个假包名，那我提前去 npm 和 PyPI 上把它注册了，里面塞上窃取密钥的恶意代码。等你哪天照抄 AI 的答案一键安装，恶意脚本就在你的 CI 或本机跑起来了。这个打法被起了个名字，叫 **slopsquatting**（AI 垃圾抢注），这个词就是 Python 软件基金会（PSF）的安全开发驻场 Seth Larson 在博客里叫响的，随后在 Hacker News 和 r/programming 上炸出一堆长帖。

这可不是纸上谈兵。2025 年，有高校团队发了篇标题很喜感的论文《We Have a Package for You!》，系统实测了主流代码大模型的推荐行为，结论是：相当比例的推荐包名纯属虚构，而且**同一个假包名会稳定复现**——据该论文的实验设置，采样次数越多，这种可复现的幻觉越扎眼。换句话说，幻觉包名不是随机噪声，是可以被“预言”并“埋伏”的。具体比例数字建议你去看论文原文，我这里不下结论，但方向上社区已经没有争议：这是一个真实存在的攻击面。

再往深一层，真实世界里“装包”这条链路已经被打穿过一次。2025 年 9 月，npm 上爆出第一起自我复制的蠕虫事件，社区给它起了个科幻名字 **Shai-Hulud**（沙丘里的沙虫）：蠕虫拿到维护者的 token 后自动发布带毒新版本，波及数百个包，然后顺着受害者的凭证继续往外爬。事后复盘，整条传播链的每一环，都是“开发者无脑信任一个包”这个习惯。

### 社区吵成了三派

这波讨论在 HN 和 Reddit 上基本分裂成三个立场：

- **恐慌派**：AI 生成代码的普及会让供应链攻击变成常态，npm/PyPI 这种“任何人可注册”的开放注册机制扛不住了，得引入审核期甚至实名制；
- **实用派**：这就是老问题 typosquatting（手误抢注）的新放大器，方法早就有了——锁版本、审计依赖、验证包名——做到位能挡掉九成攻击，不用恐慌；
- **甩锅派**：根因不在 AI 也不在注册机制，在无脑照抄的开发者自己。AI 只是让“不验证就安装”的人暴露得更快。

我的看法偏实用派再加一句：**这次不一样的地方在于，幻觉包名是“可预测”的**。以前 typosquat 靠赌你会手误，现在攻击者连赌都不用赌，直接问一遍 AI 就知道该抢注哪个名字。防御思维得从“别打错字”升级成“别信任何一行你没验证过的 import"。

### 国内用户的三个天然优势和一个盲区

好消息是国内开发者的默认姿势反而更安全：大多数人走的是清华、阿里云这类镜像源，镜像同步本身有延迟，相当于一个**天然的“新包冷静期”**——投毒包刚发布就立刻中招的概率被压低了。但盲区也在这：很多公司 CI 直连官方 registry 追求实时性，恰恰绕开了这层保护。

```mermaid
flowchart TD
  A["AI 助手给出包名"] --> B{"名字真实存在？"}
  B -->|不存在| C["攻击者提前抢注"]
  B -->|存在但新版有毒| D["投毒版混进版本更新"]
  C --> E["开发者照抄安装"]
  D --> E
  E --> F["install 脚本偷密钥"]
  F --> G["蠕虫自我复制"]
  G --> H["波及数百个上游仓库"]
  H --> I["供应链大面积污染"]
  E --> J["防线一：官网验名"]
  E --> K["防线二：锁版本加冷静期"]
  E --> L["防线三：沙箱加审计"]
```

---

## 二、开源维护者的反击：No-AI 运动挂出免战牌

第二场架，打在开源社区的门口。

AI 把“生成一个看起来像样的 PR”的成本打到零之后，全球开源维护者迎来了一场静悄悄的灾难：**AI 灌水贡献**。大量由大模型生成、看起来头头是道、实际满是幻觉 API 和不存在的函数调用的 pull request 和 issue，涌向那些本来就靠志愿者用爱发电的项目。维护者去验证一个幻觉贡献的时间，是自己写三倍代码的时间。

于是海外社区出现了近年来少见的一致行动：

- **Freedesktop.org**（Linux 桌面基础设施的地基，X11/Wayland/GLibc 都挂在这）在 2025 年 4 月直接在自己的 GitLab 上挂出政策：**不接受 AI 生成的代码贡献**——据其官方公告，这是基础设施级别组织里最早明牌的一批；
- **curl** 作者 Daniel Stenberg 多次公开开炮，吐槽 AI 生成的“安全漏洞报告”全是幻觉拼盘，浪费他这个维护者几十年的宝贵时间，甚至对反复提交 AI slop 报告的赏金猎人动用了封禁（据其博客和社交媒体发言）；
- GitHub 上越来越多的项目在 README 和 CONTRIBUTING 里写明“本项目不接受未经声明的 AI 生成贡献”，`no-ai` 这类仓库标签开始流行（据社区讨论，规模无权威统计，肉眼可见地在涨）。

### 这场架吵得更凶

因为这已经不是技术问题，是价值观问题。三派立场给你摆清楚：

- **支持禁**：维护者时间是全网最稀缺的资源，幻觉贡献是负价值，先挡住再说。“我们没有义务替你的提示词打工”；
- **反对禁**：一刀切误伤太重。用 AI 辅助写出的合格代码，和纯手写的合格代码，质量上没有区别，**该查质量，不该查出身**。历史上从 IDE 自动补全到 Stack Overflow 抄代码，哪次“新工具恐慌”最后都真香了；
- **中间派**（目前声量最大）：可以拒绝，但更好的办法是要求**声明 AI 使用方式**——哪些部分 AI 生成、你做了哪些验证。隐瞒才是原罪，工具不是。

有意思的是，这个争议在国内几乎无声，但国内公司恰恰是最该抄作业的：想想你们公司内部的开源治理、外包代码验收、供应商交付——AI 灌水代码混进交付物的风险，和开源社区面对的是同一个问题，而 Freedesktop 的政策文本就摆在那，中文化一下就能当模板用。反过来说，如果你给海外项目提 PR，先去读一下对方的贡献政策，别把“AI 帮我十倍速产出”当成加分项递过去——在某些项目门口，那是减分项，甚至是拉黑项。

---

## 三、第三场仗：内容站对 AI 爬虫，抓取开始按次收费

第三场吵得最久的，在内容方和 AI 公司之间。

2025 年 7 月 1 日，Cloudflare 做了一件被外媒称为“内容独立日”的事：**新接入的域名，默认拦截所有 AI 爬虫**，想被抓取的站点自己去后台打开开关。同一天他们宣布内测 **Pay Per Crawl**——一个按次收费的市场，AI 公司想抓你的内容？按请求付费。这对 “robots.txt 一张纸管天下” 的旧秩序是釜底抽薪：拦截从“请求”变成了“默认”。

被点名管理的主要是那些 AI 训练爬虫：OpenAI 的 GPTBot、Anthropic 的 ClaudeBot、Google-Extended、还有据 Cloudflare 公开报告流量最凶的 ByteDance 家的 Bytespider。站长的处境肉眼可见：AI 搜索时代，被抓走全文意味着用户不再点进原站，广告和订阅收入归零，**“被抓”从曝光福利变成了纯失血**。

社区同样是两派：

- **站军方**：早该如此。AI 公司拿全网内容训练模型卖钱，作者一分拿不到，这就是史上最大规模的搭便车，按次收费天经地义；
- **开放派**：这是 Web 开放精神的讣告。默认拦截 + 付费墙会加剧信息垄断——只有付得起钱的大模型公司能抓全网，小团队和学术研究被挡在门外，最后受损的是整个互联网的信息流动性。

对你个人的启示在另一个方向：如果你在做英文内容站、独立开发者产品官网，或者靠 SEO 吃饭，**“AI 爬虫带流量”这个假设在 2025 年之后已经不成立了**，得重新算账——要么在 Cloudflare 后台把 AI 爬虫关掉止损，要么研究按次收费怎么定价，别再拿 2019 年的流量模型做 2026 年的决策。

---

## 信息差总结

| 你以为的 | 实际上 |
|---------|---------|
| AI 给错包名，顶多装不上报个错 | 假包名稳定复现，会被提前抢注埋毒，装上才是灾难的开始 |
| 国内镜像源只是加速器 | 同步延迟是天然的“新包冷静期”，反而是道防线；直连官方源的 CI 才是裸奔 |
| 开源社区欢迎一切贡献 | Freedesktop 明文拒收 AI 贡献，curl 作者公开封杀幻觉报告，提交前先读政策 |
| 内容被 AI 抓取 = 免费曝光 | Cloudflare 已把默认拦截做成出厂设置，抓取正在变成按次付费的生意 |
| 供应链安全是大厂的事 | 蠕虫顺着维护者 token 爬，个人小项目就是它的跳板 |

## 行动指南

今天就能做完的六件事：

1. **验名三件套**：AI 给的任何包名，安装前先在 npm（npmjs.com）/ PyPI（pypi.org）官网搜一遍，看发布时间（太新的警惕）、周下载量（个位数的警惕）、仓库链接是否对得上；
2. **上冷静期**：pnpm 配置 `minimumReleaseAge`（比如 7 天，新发布的版本先晾一周再进你的依赖树），npm 新版本也跟进了这个选项；
3. **锁死版本**：`package-lock.json` / `requirements.txt` 锁文件必须进版本库，CI 禁用裸 `npm install`；
4. **加一道审计**：Python 装 `pip-audit` 跑一遍依赖，npm 用自带 `npm audit`，团队项目可以挂 Socket（socket.dev）的 GitHub App 盯新依赖；
5. **脏活进沙箱**：不熟悉的新包先在 Docker 容器里装一遍、跑一遍，确认 install 脚本没碰环境变量和密钥文件，再进主环境；
6. **提 PR 前读政策**：给海外开源项目贡献前搜一下它的 CONTRIBUTING 和近期 issue，有 no-ai 声明的，老老实实声明 AI 用法或者换项目贡献。

## 延伸思考

把三场架放在一起看，其实是一场仗：**AI 把“生成”的成本打到零，把“验证”的成本打上天**。包名要验证、贡献要验证、内容要验证——未来一两年海外社区真正的机会窗口，不在再造一个生成工具，而在验证这一侧：依赖审计、内容溯源、贡献者信誉层。对个体来说，别急着挤进生成侧的红海，想想你手头的技能能不能卡位到验证侧，那里的位置现在还空着。

注：文中涉及的具体政策、事件均有出处性质标注，个别数字（如论文中的幻觉比例）因未能当场核验原文，未给出精确值，请以链接原文为准。

## 参考来源

- HN 全站检索 “slopsquatting” / “Shai-Hulud” 相关讨论：https://hn.algolia.com/
- 供应链恶意包实时情报与检测工具 Socket：https://socket.dev
- Freedesktop.org 官方 GitLab（可查其 AI 贡献政策公告）：https://gitlab.freedesktop.org
- curl 作者 Daniel Stenberg 的博客（检索 “AI slop” 相关文章）：https://daniel.haxx.se/blog/
- Cloudflare 官方博客（检索 “Pay Per Crawl” 与 “Content Independence Day” 公告）：https://blog.cloudflare.com

---
> 本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵**爱卫生**（微信ID: gprshome201101）维护。
> 聚焦5G/6G核心网、3GPP标准、AI工具实战。知识星球「51学通信」提供深度技术答疑和行业洞察。

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
