security-audit 深度评测:2.99 万 Star 的 Cloudflare 安全审计技能,65 条测试我全跑了,仓库里没有一行代码找漏洞

security-audit 深度评测:2.99 万 Star 的 Cloudflare 安全审计技能,65 条测试我全跑了,仓库里没有一行代码找漏洞

用过 AI 写代码的人,多半都撞过同一堵墙:让编码助手顺手”看一眼安全”,它扫两眼,回你一段像模像样的话——”这里可能存在 SQL 注入风险,建议改用参数化查询”。听上去没错,可它没说清是哪个接口、谁能触发、真被利用会丢什么。Cloudflare 开源的 security-audit 技能就是冲着这堵墙来的,GitHub 上已经攒到 2.99 万 Star,120 天从零涨到这个数。我在隔离沙箱里把它逐文件翻完,撞见一个别的评测少见的反差:这个技能挂的招牌是”安全审计”,仓库里却没有任何一行代码负责找漏洞。

它不是扫描器,是给 AI 定的审计作业规范

先把它是什么说清楚。市面上的安全工具分两类:一类是扫描器,自己跑起来找漏洞;另一类是规范,教别的 AI 怎么找。security-audit 属于第二类,而且属于得很彻底——整份仓库 15 个 Markdown 文件、18.3 万字节,全是写给人(准确的说是写给模型)看的流程说明书。

一句话定位:给 AI 编码助手(Claude Code、Codex 这类能调工具的助手)装一套六步作业规范,逼它把”我觉得这里有问题”变成”这条证据能溯源、这个结果真跑出来过”。

它的六步是这样走的:侦察(把代码结构和信任边界画出来)→ 按覆盖清单派猎手 → 候选人验证(交给另一个没参与找漏洞的 AI 去证伪)→ 结构化输出 → 独立复核记录 → 出报告。里面有几个反直觉的设计:

  • 找漏洞的 AI 和验证漏洞的 AI 必须是两个,且验证方拿到的任务就是”尽力推翻它”。理由写在仓库首页:同一个 AI 既当运动员又当裁判,等于没验。
  • 搬运沙箱产物的规矩细到吓人:每一步用文件描述符、不许跟随软链接、不许递归拷贝、每个文件有字节上限。这是给”审计目标自己写文件、想借机逃出沙箱”这种场景上的锁。
  • 只认三类结论,判据写在词上,不放水:
结论 什么情况下才给 给不给严重等级
confirmed(已确认) 来源能完整溯源,且有真跑出来的结果 给
needs_validation(待验证) 有一个具体的、卡住的外部事实没拿到 不给
rejected(已证伪) 候选被独立验证方推翻 不给

换句话说,它不承诺”帮你找到漏洞”,它承诺”让 AI 找漏洞的每一步都可被追查”。这两者的差别,就是这份仓库全部的设计动机。

我把它的测试全跑了,65 条一次通过

评测安全审计工具最尴尬的地方是:你没法用它审自己证明它行。所以我改成核两件能核的事——它自己带的测试,和它那两个校验脚本的边界行为。

先看仓库里唯一有代码的部分。整个仓库只有 4 个 .cjs 文件,其中 2 个是校验器,另 2 个是给校验器写的测试:

文件 大小 干什么
validate-findings.cjs 28,806 字节 校验最终结论文件合不合规
validate-coverage-ledger.cjs 33,522 字节 校验覆盖清单的每一步有没有交代
validate-findings.test.cjs 26,384 字节 上一条校验器的测试
validate-coverage-ledger.test.cjs 28,483 字节 覆盖清单校验器的测试

两个校验器加起来 62.3 KB,零第三方依赖——仓库里连一份”依赖清单”(package.json)都没有,只用 Node 自带模块。我在沙箱里跑它自带的测试:65 条断言,65 条通过,0 失败 0 跳过,4.08 秒。拆开看是 34 条管结论校验、31 条管覆盖清单校验。

这个数字需要配一句解释:65 条测试,没有一条在测”能不能找到漏洞”。它们测的全是另一件事——报告格式的守门人够不够狠。我按这个方向自己加了几组边界输入去撞它:

  • 传一个空结论表 [] → 通过,退出码 0(空报告合法,不许硬编一条充数)
  • 传一个对象而不是列表 → 拦下,退出码 1
  • 传一段截断的 JSON → 拦下,退出码 1,只印一句”语法错误”,不吐堆栈
  • 传一个不存在的文件名 → 拦下,退出码 1,同样不吐堆栈

四个例子的意义在于最后那条:失败的时候不把调用方的输入原样回显出来。听起来是小事,做安全的人知道这不是——审计报告里如果混进一串控制字符,能把终端骗过去,所以它连诊断信息都做转义。这条规矩在它的测试里占了整整一类。

覆盖面这一侧它也下了本钱:主规范之外配了 10 个”攻击面分类”文件,从内存安全、AI 大模型的提示注入(也就是往给模型的指令里夹带私货)、网页协议与登录认证,一路到供应链、云部署、桌面端本地进程间通信。15 个 Markdown 里一共 106 个小节标题。这份分类表的价值不在深,在于”摊得开”——它逼模型在动手前先回答”我审的是哪一类目标、该类里有哪些套路”,而不是笼统地”审一下”。

有两处我如实写下来,不替它圆:

第一处是仓库自己承认的短板。README 里有一句原话:在他们的测试里,单跑一轮大约只找到多轮累计漏洞数量的一半。翻译成普通话——这工具跑一次是不够用的,得反复跑、比对几次结果。这句话敢于写在首页,比一堆”行业领先”可信,但也说明它现在还不是”一把过”的成熟工具。

第二处是节奏。最后一条提交停在 2026 年 9 月 14 日,到今天我写这篇时已经 32 天没动;全部历史只有 14 次提交、5 个合并的 PR,作者高度集中在一个人身上(literally-dan / Dan Jones)。对一个 3 万 Star 的项目,这个维护密度偏低——它是”Cloudflare 放出来的一份方法论”,不是”一个每周都在长的基础设施”。这两者的用法完全不同,后面会说到。

和同类比,它的位置在哪

把它和常见做法摆一起,位置就清楚了:

对比对象 谁在找漏洞 要不要独立复核 证据形态
静态扫描器(如代码扫描工具) 工具自己 不需要 规则命中列表
直接问 AI”审一下” 同一个 AI 没有 一段自然语言
security-audit 技能 AI 去做,但按固定六步 强制,且验证方必须独立 结构化记录 + 可溯源证据

差别集中在中间那一列。”直接问 AI”的问题从来不是它不够聪明,而是它说”有风险”时,你分不清那是结论还是它在迎合你。这个技能的做法是:把”下结论”这件事本身立成一道有格式、有复核、有证伪的流程。

适合谁用:手上有一份想认真过一遍安全的中小型代码库,团队里有人能读懂 AI 给出的证据链,并且愿意接受”跑一轮不够、要跑几轮”这个前提。也适合只想学一套审计方法论、不打算直接用它的人。

不适合谁用:指望装上一个技能就自动把漏洞扫出来的人。这仓库里没有一个字节是扫描逻辑,找不到漏洞不是它坏了,是它压根不干这事。另外一个前提是它要求执行环境有硬沙箱——真要动手复现目标代码的行为,得有个能断网、能限内存、只让往指定目录写的隔离环境;没有这个环境,规范自己的要求是:不许跑目标代码,把线索标成”待验证”。这个自我约束是优点,但也意味着实际能挖多深,取决于你手里的沙箱。

我的判断

这是一个人格很完整的安全审计技能,但不是一个人能拿来就用的工具。它的价值在流程:六步怎么分、谁去找谁去验、什么才配叫”已确认”、沙箱里怎么搬文件才不出事——这些规矩是 Cloudflare 从自己的漏洞发现流水线里抽出来的,有真实来源,不是纸上谈兵。2.99 万 Star 和 120 天的涨速,也说明这套方法论踩中了大家的痛点。

但它把力气全花在”规范”上,代价就是”能力”那半边是空的:没有扫描逻辑,65 条测试一条都不碰找漏洞本身,32 天没提交,作者一个人扛。所以我的结论是把它放进”值得精读、谨慎依赖”这一档——读它的流程设计,比跑它找漏洞收获更大。

这背后其实是一条更普遍的规律:AI 时代的很多所谓”技能”,真正稀缺的不是让模型变强,而是给模型的行为立规矩、加复核。这套仓库是这个思路里做得比较扎实的一份样本。

关注 AI商业快讯,每天一篇 AI 热点深度解读。

相关阅读:

Cloudflare 免费 AI 服务升级全景拆解:Vectorize 与 Workers AI 免费额度算清账,「免费 500 万向量」误读纠正

Cloudflare 免费 AI 服务升级全景拆解:Vectorize 与 Workers AI 免费额度算清账,「免费 500 万向量」误读纠正

白嫖党关心的问题永远只有一个:Cloudflare 的免费额度,到底够干什么?中文圈给出的答案相当诱人——掘金上流传最广的教程写着,Vectorize 免费额度”支持 500 万向量、每月 300 万次查询”。这个数字让很多人以为捡到了宝。但翻开 Cloudflare 官方定价文档一算,完全是另一回事:免费层只够存 6,500 条 768 维向量(约等于 5M 维度 ÷ 768),和”500 万”差了三个数量级。这篇不吹不黑,把 Vectorize 与 Workers AI 两个免费服务的真实额度算清账,顺便盘点它们最近一年到底”升级”了什么。

免费额度两年没动,动的是”上限”和”模型目录”

先说结论,可能和你的体感相反:两个核心免费额度,两年多没涨过一分钱。

Vectorize 免费层(每月 3000 万查询维度 + 500 万存储维度)2024-09 定下至今未变;Workers AI 每天 10,000 Neurons(神经元,Cloudflare 的 AI 算力计费单位)更是 2024-04 上线时就是这个数,2026-08 的最新定价文档依旧如此。

真正的升级发生在别处(额度单位不变,但同样的钱能买到更多):

  • 索引容量上限:单索引最多 500 万向量 → 2026-01 翻倍到 1000 万 → 2026-08 的 limits 文档已显示 2000 万向量(架构上限,与免费存储额度是两码事,后面细说)
  • 模型目录:从早期几十个小模型扩到 50+,2026 年密集上新——Kimi K2.6/K2.7 Code(1 万亿参数级)、GLM-5.2/5.3、DeepSeek-V4、Gemma 4 26B、NVIDIA Nemotron-3、FLUX.2 生图全家桶
  • 工程体验:2026-02 起 OpenAI 兼容 API 的 tool calling 全面修 bug(多轮函数调用终于不抽风);2026-03 上线 prompt caching(缓存输入价格仅为原价 1/30-1/90)与异步批量 API
  • 周边额度:KV 免费层 2026-02 提升(读 10 万次/天 + 1GB);Workers 代码包体积 2026-09 从 3MB 放宽到 64MB——之前塞不进 Worker 的大依赖,现在可以了

一句话:Cloudflare 走的是”额度冻结、内容升值”路线——每天同样的 10,000 Neurons,2024 年只能玩 7B 小模型,2026 年能碰 1T 级开源前沿。但坏消息是,额度没涨的同时纪律在收紧(见第四节)。

Vectorize:额度按”维度”算,不是按”条数”算

Vectorize 免费额度难懂,是因为它的计量单位不是”向量条数”,而是向量维度数(stored dimensions / queried dimensions)。一个 768 维的向量,就消耗 768 个存储维度。

免费账本:5,000,000 存储维度/月 + 30,000,000 查询维度/月(官方定价文档,2026-04 更新,链接)。除以维度,真实容量如下:

嵌入模型(维度) 免费可存向量数 备注
bge-small(384 维) ≈ 13,000 条 英文轻量场景
bge-base / base-zh(768 维) ≈ 6,500 条 中文常用档
bge-m3 / qwen3-embedding(1024 维) ≈ 4,880 条 多语言/长文本
OpenAI text-embedding-3(1536 维) ≈ 3,255 条 外部模型需自调 API

查询侧公式是(月查询次数 + 存量向量数)× 维度 ≤ 3000 万。存 5,000 条 768 维向量的索引,每月约可查 3.4 万次,折合每天 1,100 次左右——个人博客语义搜索、几百页文档的私有知识库、MVP 验证,完全够用。这也是 Cloudflare 官方明说的定位:免费层永远支持”原型和实验”。

超了也不贵(这才是 Vectorize 真正的杀手锏):官方示例,5 万条 768 维向量 + 每月 20 万次查询,约 $1.94/月,前 10M 存储维度与前 50M 查询维度甚至直接包含在 $5/月的 Workers Paid 里。对比 Pinecone 最低 $50/月起步,差距是数量级的。

Workers AI:10,000 Neurons/天到底能干什么

Neurons 按 GPU 算力成本折算——模型越强,单价越贵,免费额度能跑的次数越少。这也是”有人说够用、有人说一小时烧光 12%”吵翻天的原因:两人用的是不同模型。按 2026-08 官方模型价格表换算:

模型/用途 单价(输出) 每天 10,000 Neurons ≈
Embedding(bge-m3 等) ~1,075 Neurons/M tokens 近千万 token,建库不是瓶颈
Whisper 语音转写 ~41-47 Neurons/分钟 约 4 小时音频
FLUX.1-schnell 生图 ~10 Neurons/步 200+ 张图
llama-3.2-1b(小模型) ~18,252 Neurons/M tokens 500-1,000 次对话(每次 500 输出 token)
gemma-4-26b / qwen3-30b ~27,000-30,000/M tokens 约 700 次
gpt-oss-20b ~27,273/M tokens 约 700 次
Kimi K2.6 / K2.7 Code / GLM-5.3 ~360,000-400,000/M tokens 只有 50-70 次

看懂这张表,就知道正确用法是分层:批量分类、改写、embedding 全部走小模型;Kimi K2.6 这类前沿模型只留给关键推理步;多轮 agent 会话加 x-session-affinity 头吃 prompt cache(缓存输入单价只有原来的 1/30-1/90,Neurons 直接省一个量级)。纯免费栈跑通一个带 AI 检索的个人应用,Reddit 上 2026-06 已有人验证可行。

三个真实的坑

① 模型目录滚动淘汰:2026-05-30 一次性下架 17 个旧模型——gemma-3-12b、llama-3.1-8b 全系、mistral-7b、phi-2 都在列;kimi-k2.5 被自动别名到价格更高的 k2.6。代码里写死的模型 ID 会直接 404,dashboard 用量也可能莫名上涨。

② 免费层超限即停:免费额度打满后请求直接失败(Free 无自动计费),要超用必须升 $5/月 Workers Paid。2026-09-01 起 D1(SQLite 数据库)免费层已改为超限直接失败——以前”超一点还能跑”的宽松时代结束了,Vectorize 同理。

③ 前沿模型限流很紧:Kimi K2.6/GLM-5.2 等只有 20 rpm(充值 AI Gateway credits 可到 50 rpm);另外免费额度 UTC 0 点重置后偶发 error 4006 误报超限(2026-09 社区仍有人中招),遇到重试即可。embedding 模型选型时也注意:索引维度定死后中途不能换模型,否则要重建索引重灌数据。

与同类对比:免费向量库中 Vectorize 的 5M 维度 ≈ 6,500 条(768 维)比 Pinecone 免费层(单索引 100 向量级)慷慨得多;但要存几十万条以上还是得上付费云或自建。Workers AI 免费额度做 demo 富余、做生产不足,定位是”Workers 生态的拼图”——它的真正价值不是省钱,而是向量库、embedding、推理、对象存储(R2 10GB 免流量费)全部在同一生态内,零 API key 管理,全球 300 城边缘分发。适合:个人站语义搜索、私有知识库 MVP、已在 Cloudflare 部署的全栈应用。不适合:亿级向量生产库、要求 10ms 级延迟的实时推荐、以及重度依赖前沿模型每日推理的业务。

总评:免费层是当下个人开发者做 AI 应用性价比最高的起点——额度对”几千条文档、每天千次查询、混合使用小模型”的量级绰绰有余,超出后的付费价格又便宜到可以忽略。真正的成本是维护:模型下架要跟进、额度上限要按维度盯着算。别信”免费 500 万向量”的教程,信自己的除法。

(额度与价格截至 2026-09-08,以 Cloudflare 官方定价文档为准。本文为独立评测,与 Cloudflare 无利益关系,未接受任何形式的赞助或免费额度;文中核算基于官方公开文档,未自购套餐跑真实负载。)

相关阅读:10 美元买 70 美元额度?CommandCode GOAT 订阅拆解 | 实测 9 款 Token 节省工具横评 | 谷歌 Gemini 视频开关:号称砍 88% token 实测翻车

关注 AI商业快讯,每天一篇 AI 热点深度解读。