Kareloko/claude-security-kit
GitHub: Kareloko/claude-security-kit
为 Next.js + Supabase SaaS 应用提供生产级安全审计、合规与事故响应的一体化工具包。
Stars: 1 | Forks: 0
# Claude Security Kit
**2 项技能 + 4 套实践指南**,保护你的 SaaS 免受 OWASP Top 10 威胁,执行法律合规性检查(GDPR/LATAM),并自动化防御性安全 —— 这一切尽在终端中完成。
## 你将获得
| 组件 | 描述 |
|-----------|-------------|
| `saas-security-audit` | 30 多项久经沙场的安全检查:RLS、身份验证、CSP、OWASP、会话劫持、法律合规性、密钥扫描 |
| `saas-security-review` | 日常编排器:按顺序执行代码质量 + 安全审计 + 通用 OWASP 检查 |
| `security-fundamentals.md` | CIA 三要素、严重性术语表、会话指纹、重新验证模式 |
| `offensive-security.md` | 道德黑客指南:Burp、Kali、ZAP、漏洞赏金、取证 |
| `incident-response.md` | 针对数据泄露事件前 60 分钟的分钟级应对指南 |
| `security-automation.md` | 一次性设置:Dependabot、CodeQL、DMARC、SIEM、加密备份 |
| `wordpress-audit.md` | 针对 WordPress 客户站点的专业审计模板 |
## 安装
```
claude plugin install github:Kareloko/claude-security-kit
```
或手动克隆:
```
git clone https://github.com/Kareloko/claude-security-kit.git ~/.claude/plugins/claude-security-kit
```
## 用法
### 日常审查(完成功能开发后)
```
You: "security review"
```
按顺序运行 **simplify**(代码质量) -> **saas-security-audit**(30 多项检查) -> **通用 OWASP 检查**。报告阻碍性问题并提供具体的修复方案。
### 安全审计(上线前或针对敏感功能)
```
You: "security audit"
```
运行所有阶段,包括法律合规性检查(GDPR endpoint、Dependabot、DMARC、feature flag、备份)。
### 深度进攻性审计(渗透测试风格)
```
You: "security audit --deep"
```
加入 Burp/ZAP/ffuf 进攻技术。自动检测技术栈(Next.js 还是 WordPress)并使用正确的审计模板。
## 检查内容(30 多项规则)
### 核心安全(阶段 1)
- 在所有 Supabase 表上启用 RLS
- 在服务器端始终使用 `getUser()`,绝不使用 `getSession()`
- 客户端代码中绝不出現 `SERVICE_ROLE_KEY`
- 在 Server Action 中将 Zod 验证作为第一道防线
- 对高消耗的 endpoint(AI、身份验证、外部 API)进行速率限制
- 带有 nonce 的 CSP 头(script-src 中没有 `unsafe-inline`)
- 管理路由返回 404,而不是 403
- 验证 `redirectTo` 为本地路径(防止开放重向)
- 通用的登录错误消息(防止电子邮件枚举)
- 逻辑删除:RLS SELECT 包含 `deleted_at IS NULL`
- 多租户双层防护(RLS + 显式代码检查)
- Webhook 签名验证
- 不向客户端暴露内部错误
### 防 Bug 规则(阶段 2)
- 未过度使用 `"use client"`(默认使用 Server Components)
- `NEXT_PUBLIC_` 未暴露敏感密钥
- Supabase 类型与 schema 同步
- 提交按钮具有 `disabled={isPending}`
- 通过 migration 创建表,绝不在运行时创建
### 法律合规性(阶段 2.5)
- `/api/account/delete` endpoint(GDPR 第 17 条 / 秘鲁第 29733 号法令)
- `/api/account/export` endpoint(GDPR 第 20 条)
- 对破坏性操作进行重新验证
- Feature flag 表(无需重新部署即可实现熔断)
- 已发布 `security.txt`
- 已配置 Dependabot + CodeQL + TruffleHog
- 用于安全事件监控的 SIEM lite 定时任务
- 异地加密备份
### 久经沙场的 Bug(阶段 3)
来自真实 SaaS 应用的实际生产 Bug:
- 带有尾部 `\n` 的环境变量(导致 Upstash/Stripe 静默崩溃)
- 没有全局 try/catch 的定时任务处理器(导致静默失败)
- `.env.example` 与实际代码存在偏差
- RLS 策略自引用(无限递归)
- 在 Server Action 中使用 `signInWithPassword`(cookie 无法传递)
- CSP nonce + 静态页面 = 空白页面
- 注册时未进行配置文件回滚(导致出现孤立的 auth.users)
### CIA 分类(阶段 4)
每个发现均按以下标准分类:
- **保密性** / **完整性** / **可用性** 支柱
- **严重性**:CRITICAL > HIGH > MEDIUM > LOW > INFO
## 报告示例
```
# Security Audit Report — my-saas-app
Date: 2026-04-16
Verdict: DO NOT MERGE
## 摘要
- CRITICAL: 1 (RLS missing on payments table)
- HIGH: 2 (no account deletion endpoint, webhook without signature)
- MEDIUM: 3 (missing CSP, no rate limit on /api/ai, Dependabot not configured)
## 严重: payments table 缺少 RLS
- File: supabase/migrations/20260401_payments.sql
- CIA: Confidentiality
- Fix: ALTER TABLE payments ENABLE ROW LEVEL SECURITY; ...
```
## 技术栈
专为以下技术构建:
- **Next.js 15+**(App Router、Server Components、Server Actions)
- **Supabase**(PostgreSQL + 身份验证 + RLS + 存储)
- **Vercel**(部署、定时任务、环境)
- **TypeScript**(严格模式)
适用于任何遵循标准约定的 Next.js + Supabase 项目。
## 诞生于真实 Bug
此工具包诞生于服务于 LATAM 市场(医疗、金融、教育、儿童数据)的 5 个以上 SaaS 应用的**真实生产事件**。每一条规则的存在都是因为曾经发生过真实的 Bug,并已被记录在案,以确保不再重蹈覆辙。
## 许可证
MIT —— 随意使用、fork、改进并分享它。
**由 [Somar Creaciones](https://github.com/Kareloko) 带着实战的伤痕倾力打造**
标签:CISA项目, Claude插件, DevSecOps, Next.js, SOC Prime, Supabase, 上游代理, 安全审计, 开发工具