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, 上游代理, 安全审计, 开发工具