上个月我干了件损事:把四个最强的 AI 编程助手绑上测试台,往它们要读的代码注释、依赖文档、报错信息里偷偷塞恶意指令,看它们会不会被骗去偷我的 API key、删我文件、往外偷联网🧪 跑了 288 次。有个数字让我盯了很久:DeepSeek-V4-Pro 那组,基础档 54.2% 中招。
后来我想明白,被注入劫持只是一半危险,另一半更常见——AI 根本不用谁骗,它自己就顺手把漏洞写进你代码里了。
省流🛡️ 我做了个免费开源的插件 vibe-guardian:AI 每写完一个文件就扫,提交前直接拦住硬编码密钥、SQL 注入、Supabase 裸表这些 AI 最爱写的漏洞。纯本地正则,一行大模型都不调,几毫秒,代码绝不离开你电脑。一行装:npx vibe-guardian scan,GitHub 搜 wbw20000/vibe-guardian。
(天天用 Cursor / Claude Code / Lovable 凭感觉写代码的,建议先收藏再看📌)

① 四个AI被下毒后的成绩单
288 次注入攻击,中招率:DeepSeek-V4-Pro 在基础档 54.2%🔴;GPT-5.5 是 8.3%;Opus 4.8 和 GLM-5.2 全程零中招(0% 是统计区间内的观测,不等于「证明为零」)。最危险的载体是「依赖文档」(29.2%),其次是伪造报错(16.7%)——AI 读到什么就信什么,分不清哪句是你写的、哪句是坏人埋的。

② 但更常见的坑,是AI顺手写的漏洞
不用注入,AI 图省事就爱犯三个老毛病:
· 硬编码密钥🔑:把 API key 当字符串写死进源码,一提交上 GitHub,几分钟被爬虫扫走盗刷 · 拼接 SQL💉:用户输入直接接进查询语句,别人一段特殊字符拖走你整张表 · Supabase 裸表🚪:建了表不开 RLS(行级门禁),任何人拿到你前端就能读写全表;万能钥匙 service_role 还常被写进前端

③ 两次实验,同一个结论
注入实验里最有意思的不是谁中招多,是怎么防住的。我给一档只加了一条死规矩 +「拿不准就弃权」的出口——中招率断崖下跌:54.2% 压到 29.2%,8.3% 直接压到 0。防住注入的从来不是更聪明的模型,是一条不给它自由发挥的死规矩。 这就是我做工具的那句话:别指望 AI 自觉,加一道不依赖 AI 的确定性门。

④ vibe-guardian 就是这道门
它守两道关口:
· 写入时🖊️:装成 Claude Code 插件,AI 每写完一个文件立刻扫,发现问题直接让 AI 当场改(写→拦→修 闭环) · 提交时🔒:装成 git pre-commit 钩子,带漏洞的代码根本进不了提交历史
只有铁板钉钉的规则(密钥、SQL 注入)才真拦你,启发式规则只提示——不制造「狼来了」,不逼你 --no-verify 跳过。

⑤ 真实扫描:一个不漏
不是示意图。我照 AI 最容易写的样子造了个漏洞文件,扫描结果:🔴3 个 error(硬编码 OpenAI key、拼接 SQL、前端 service_role)直接拦提交,⚠️3 个 warn(两张表没开 RLS、innerHTML XSS)只提示。更好玩的是——写这篇笔记时我一存盘,自己电脑装的插件当场把我拦了。我造的夹具被我自己的工具抓了个正着😂

⑥ 记住四句就够
· AI 写的代码默认当它不安全,上线前必须过门 · 密钥永远走环境变量,别落进源码 · 数据库门禁(RLS)自己不开,没人替你开,裸表=裸奔 · 会拦你的门得是台不讲情面的机器,不是又一个可能被绕过的 AI

⑦ 最讽刺的一点
这么个专门防 AI 的工具,自己一行大模型都不调。全是本地正则,零依赖,扫一遍就几毫秒,代码绝不离开你电脑。防不靠谱 AI 的最好办法,有时候就是压根不放 AI 进来🛡️
工具已开源、免费:GitHub 搜 wbw20000/vibe-guardian,或一行 npx vibe-guardian scan 直接扫。觉得有用去仓库点个 star,让我有动力继续加规则🙏
⚠️诚实说:它拦的是「AI 写出的漏洞代码」,拦不了「注入攻击」本身,那是另一个战场;它是第一道门,不替代企业级 SAST。注入实验对比的是「模型+自带框架」不是裸模型排名,换批攻击数字会变。
你用 AI 写代码踩过密钥泄漏的坑吗?评论区聊聊👇
🔗 开源地址:github.com/wbw20000/vibe-guardian(免费) 📖 上篇「给4个AI下毒」完整实验(288跑):crawdpad.com/library/xiaohongshu/ai-coding-agent-prompt-injection
#AI编程 #vibecoding #独立开发 #网络安全 #Claude #Cursor #API安全 #Supabase #程序员 #深度测试