vibe-security-skill
AI 编码助手的安全审计插件,自动捕获 vibe-coded 应用中的密钥泄露、RLS 未开启、支付
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AI 编码助手的安全审计插件,自动捕获 vibe-coded 应用中的密钥泄露、RLS 未开启、支付
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下:你用 AI 助手在一天内肝出一个 MVP,兴奋地部署上线,三天后发现数据库被人拖了个精光——API Key 写在代码里,Supabase RLS 根本没开。这就是「vibe coding」(跟随感觉快速编码)的代价,也是 Vibe Security 这个项目诞生的背景。
Chris Raroque 是一位 AI 应用开发者,常年活跃在 YouTube 和 Twitter 生态里,专注于 AI 编程工具的教学与实践。在帮助客户构建 AI 应用的过程中,他反复看到一个规律:AI 助手非常擅长实现功能,但在安全方面却有着系统性的盲区。Hardcode API Key、跳过数据库 RLS、从请求体里读取价格——这些问题不是偶发错误,而是 AI 生成代码时的固定模式。
2024 年底,Raroque 与团队在 Aloa 公司内部合作,正式推出 Vibe Security 项目,目标是为 Claude Code、OpenAI Codex 等主流 AI 编码助手提供安全审计能力,让 AI 在生成代码时就遵循安全规范,或者在代码审查时主动发现问题。
Vibe Security 采用 Agent Skill 格式(agentskills.io 标准化),本质上是给 AI 编码助手提供一份「安全检查清单」,包含 9 大审计维度:
| 类别 | 典型问题 |
|---|---|
| 密钥与环境变量 | Hardcode API Key、NEXT_PUBLIC_ 前缀暴露敏感配置 |
| 数据库访问控制 | Supabase RLS 关闭、USING(true) 策略暴露所有数据 |
| 认证与授权 | jwt.decode() 不验签、中间件-only 认证可被绕过 |
| 速率限制 | 认证/AI/邮件接口无限制、计数器可被客户端篡改 |
| 支付安全 | 从请求体读价格(可被改为 0.01 元)、未验证 Stripe Webhook 签名 |
| 移动端安全 | API Key 内嵌 JS Bundle、AsyncStorage 存 Token、不安全 Deep Link |
| AI / LLM 集成 | 暴露 AI API Key(可被薅走数千美元)、无用量上限、无 Prompt 注入防护 |
| 部署配置 | 生产环境开启 Debug、暴露 Source Map、.git 目录可访问 |
| 数据访问与注入 | SQL 注入、Prisma 操作符注入、$queryRawUnsafe 未参数化 |
AI 助手处理认证、支付、数据库访问、API 密钥或用户数据相关代码时,Skill 会自动激活,无需手动调用。也可以主动触发:/vibe-security(Claude Code)或 $vibe-security(Codex)。
项目结构非常清晰,总共仅 18 个文件,核心是 vibe-security/SKILL.md 主文件和 vibe-security/references/ 下的 8 个子参考文件:
vibe-security/
├── SKILL.md # Agent Skill 核心指令(触发条件、审计流程、输出格式)
├── agents/
│ └── openai.yaml # OpenAI Codex 适配配置
└── references/ # 按技术栈分类的安全规则参考文档
├── secrets-and-env.md # 密钥与环境变量
├── database-security.md # Supabase RLS、Firebase Security Rules
├── authentication.md # JWT、Middleware、Server Actions
├── rate-limiting.md # 速率限制策略
├── payments.md # Stripe Webhook、价格验证
├── mobile.md # React Native、Expo 安全
├── ai-integration.md # LLM API Key 保护、Prompt 注入
├── deployment.md # 生产配置、安全头
└── data-access.md # SQL 注入、ORM 安全
每个 Reference 文件都是一份完整的安全规范文档,包含错误模式描述、真实攻击场景说明,以及 Before/After 代码修复示例。以支付安全为例,项目明确指出 AI 最常犯的错误是从请求体读取价格,并给出了服务端查库的修复方案。
数据库安全是项目强调最多的领域——RLS 默认关闭、危险策略 USING(true) 等都是 Supabase vibe-coded 应用的常见雷区。项目甚至提供了一个 SQL 脚本,自动给所有表开启 RLS。
安装极其简单,依赖仅为 Node.js(用于 npx),没有任何服务端组件:
# Claude Code
npx skills add https://github.com/raroque/vibe-security-skill --skill vibe-security
# OpenAI Codex(同一命令,选择 Codex 平台)
npx skills add https://github.com/raroque/vibe-security-skill --skill vibe-security
安装后,Claude Code 遇到认证/支付/数据库相关代码会自动激活,Codex 用户可通过 $vibe-security 手动触发。
Vibe Security 存在几个需要注意的局限:
静态规则库:本质上是 YAML/Markdown 参考文档,无法实时分析代码数据流或复杂调用链,对动态生成的 SQL 或间接数据泄露无法覆盖。
需要 AI 主动加载:Skill 的触发依赖 AI 在合适时机读取对应 Reference 文件。如果 AI 在处理复杂多文件项目时未加载相关规则,审计效果会大打折扣。
不支持自动修复:目前仅做发现问题,不生成修复代码(已有 Before/After 示例可参考,但需人工应用)。
无服务端部署路径:作为 Claude Code 插件包存在,无 Web 界面、无 API、无 Docker 镜像,无法在脱离 AI 编码助手的环境中使用。
Vibe Security 的出现折射出一个更大的行业趋势:随着 AI 编码工具的大规模普及,「AI 生成代码的安全问题」正在从隐患演变为真实威胁。API Key 泄露事件、数据库被拖库、Stripe 被薅羊毛——这些问题在 vibe-coded 项目中的比例正在上升。
目前主流的解决方案要么是通用的 SAST 工具(Semgrep、Gitleaks),要么是人工安全审计。Vibe Security 的独特价值在于:直接嵌入 AI 编码助手的工作流,在代码生成和审查阶段就植入安全意识。这是 SAST 工具无法提供的「上下文感知」能力。
截至目前,该项目在 GitHub 获得 768 Stars,聚焦于 Claude Code 和 Codex 生态。如果 AI 编码助手生态继续扩张(如 Copilot Agent 模式、Cline 等),这类安全 Skill 的需求会进一步扩大。