关于 defense
面向 Web 应用的安全审计 Skill,检查从密钥、访问控制到 API 防护和敏感数据处理的八个方面。报告按严重程度列出问题,并标注文件和行号。
主要功能
- 01扫描硬编码密钥
- 02检查身份验证与访问控制
- 03检查输入验证与加密
- 04审计 OWASP Top 10 风险
- 05检查 API、速率限制与敏感数据
适用场景
- 01发布前审计 Web 应用
- 02审查身份验证和路由保护
- 03查找密钥或个人信息泄露
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ ariadoss/ superskills --skill defense安装后在 Claude Code 中输入/defense确认已加载。
详细介绍
纵深防御 — 安全验证
针对 Web 应用的多层安全审计。对 8 个安全层进行检查。
工作流
按顺序逐层执行。报告发现的问题,并标注严重程度(CRITICAL / HIGH / MEDIUM / LOW)和文件:行号引用。
第 1 层:密钥扫描
搜索硬编码的密钥、API 密钥、令牌和凭据。
grep -rn "API_KEY\|SECRET_KEY\|DATABASE_URL\|PRIVATE_KEY\|password\s*=\|sk_live\|sk_test" . \
--include="*.ts" --include="*.tsx" --include="*.js" --include="*.py" --include="*.env" \
| grep -v node_modules | grep -v ".next" | grep -v ".env.example" | grep -v __pycache__
检查:
- 源代码中没有密钥(密钥应仅存放在
.env中) .env已列入.gitignore- Git 历史记录中没有密钥:
git log --all -p -S "sk_live\|API_KEY\|SECRET" -- . ':!.env*' | head -50
第 2 层:身份验证与授权
- 会话处理:令牌过期时间、httpOnly/secure/sameSite Cookie、退出登录时失效
- 路由保护:每个 API 路由在处理请求前都要检查身份验证
- 角色强制执行:不同类型的用户只能访问自己的资源
- IDOR 防护:资源访问范围限定为已通过身份验证的用户
# Find potentially unprotected API routes
find . -path "*/api/*/route.ts" -o -path "*/api/*/route.js" | xargs grep -L "auth\|session\|token\|verify" 2>/dev/null
第 3 层:输入验证
- 验证所有用户输入(架构、类型检查)
- 不使用原始 SQL——仅使用参数化查询或 ORM
- 不在 shell 调用中通过字符串插值造成命令注入
- 文件上传设有类型和大小限制
- 清理 URL 参数
# Check for template literal SQL or shell commands
grep -rn "exec(\`\|sql\`\|query(\`" . --include="*.ts" --include="*.js" | grep -v node_modules
第 4 层:加密
- 静态数据:数据库中的敏感数据已加密
- 传输中数据:强制使用 HTTPS,不允许回退到 HTTP
- 密钥管理:密钥存放在环境变量中,不放在源代码中,也不记录到日志中
第 5 层:OWASP Top 10
| # | 风险 | 检查内容 |
|---|---|---|
| A01 | 访问控制失效 | 资源隔离、角色检查、IDOR |
| A02 | 加密失败 | PII 加密、密钥管理 |
| A03 | 注入 | SQL、命令、模板注入 |
| A04 | 不安全的设计 | 业务逻辑缺陷 |
| A05 | 安全配置错误 | 默认凭据、详细错误信息、调试模式 |
| A06 | 易受攻击的组件 | npm audit、过时的依赖项 |
| A07 | 身份验证失败 | 会话管理、防暴力破解 |
| A08 | 数据完整性 | Webhook 签名、CSRF 令牌 |
| A09 | 日志记录与监控失败 | 审计跟踪、日志中不含 PII |
| A10 | SSRF | 验证服务器端请求中的 URL |
# Dependency vulnerabilities
npm audit --production 2>/dev/null | head -50
第 6 层:API 安全
- 验证 Webhook 签名(Stripe 等)
- 不向客户端代码暴露 API 密钥
- 对公开端点进行速率限制
- 正确配置 CORS
- 验证 Content-Type
第 7 层:速率限制与 DoS 防护
- 对 API 路由进行速率限制
- 登录端点设有防暴力破解保护
- 强制执行文件上传大小限制
- 对高开销操作进行限流
第 8 层:敏感数据保护
- 绝不记录 PII
- 错误消息中不暴露 PII
- 从 API 响应中排除敏感字段
- 强制执行数据保留政策
# Check for PII in logs
grep -rn "console\.\(log\|error\|warn\).*\(password\|ssn\|social\|secret\|token\)" . \
--include="*.ts" --include="*.js" | grep -v node_modules
报告格式
## Security Audit Report
### Critical Findings
- [CRITICAL] Description — file:line
### High Findings
- [HIGH] Description — file:line
### Medium/Low Findings
- [MEDIUM/LOW] Description — file:line
### Passed Checks
- [PASS] Layer description
评论
支持 Markdown