mcpField
S
security-review

security-review

github.com/troykelly安全1252 次安装42 周前更新
代码仓库

关于 security-review

security-review 是面向代码审查流程的安全审查技能,适用于修改认证、API、凭据等敏感代码时。它依据 OWASP Top 10 提供检查清单、审查步骤和问题分级。

主要功能

  1. 01识别安全敏感文件变更
  2. 02按 OWASP Top 10 检查
  3. 03审计依赖项漏洞
  4. 04按严重程度记录发现
  5. 05将安全结果写入审查报告

适用场景

  1. 01审查认证或会话代码变更
  2. 02检查 API、路由及权限控制
  3. 03评估输入处理和数据库代码
  4. 04审查凭据或密钥相关改动

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/troykelly/codex-skills --skill security-review

安装后在 Claude Code 中输入/security-review确认已加载。

详细介绍

安全审查

概述

针对处理身份验证、授权、用户输入、API、数据库或凭据的代码进行专门安全审查。

核心原则: 安全问题需要超越常规代码审查的特别关注。

触发条件: 修改涉及安全敏感路径时,必须进行此审查。

开始时声明: “我正在对这段代码进行安全审查。”

必须进行审查的情况

修改以下任意文件时,必须使用此技能:

模式示例
**/auth/**src/auth/login.ts, lib/auth/session.js
**/security/**src/security/encryption.ts
**/middleware/**src/middleware/authenticate.ts
**/api/**src/api/endpoints.ts
**/*password*utils/passwordHash.ts
**/*token*services/tokenService.ts
**/*secret*config/secrets.ts
**/*credential*lib/credentials.js
**/*session*middleware/session.ts
**/routes/**src/routes/protected.ts
**/*.sqlmigrations/001_users.sql

使用以下命令检查:

git diff --name-only HEAD~1 | grep -E '(auth|security|middleware|api|password|token|secret|credential|session|routes|\.sql)'

OWASP Top 10 检查清单

逐项检查以下类别:

1. 注入(A03:2021)
检查项验证内容
SQL 注入所有查询均使用参数化语句
命令注入Shell 命令中不包含用户输入,或已正确转义
LDAP 注入LDAP 查询使用正确的转义方式
XPath 注入XPath 查询采用参数化方式
模板注入模板引擎配置安全
// VULNERABLE
db.query(`SELECT * FROM users WHERE id = '${userId}'`);

// SECURE
db.query('SELECT * FROM users WHERE id = ?', [userId]);
2. 身份验证失效(A07:2021)
检查项验证内容
密码存储密码使用 bcrypt/argon2 哈希(而非 MD5/SHA1)
会话管理Cookie 设置了 Secure、HttpOnly、SameSite
令牌处理JWT 已签名、经过验证且有效期较短
暴力破解防护对身份验证端点进行速率限制
凭据泄露日志、错误信息或响应中不包含凭据
3. 敏感数据泄露(A02:2021)
检查项验证内容
传输中的数据强制使用 HTTPS、TLS 1.2+
静态数据敏感数据已加密
代码中的机密信息未硬编码 API 密钥、密码或令牌
错误消息错误响应中不包含敏感信息
日志记录不记录敏感数据
# Check for hardcoded secrets
grep -rE '(password|secret|api_key|token)\s*[:=]\s*["\047][^"\047]+["\047]' src/
4. XML 外部实体(A05:2021)
检查项验证内容
XML 解析已禁用外部实体
DTD 处理如非必需,已禁用 DTD 处理
5. 访问控制失效(A01:2021)
检查项验证内容
授权检查每个端点都会验证权限
直接对象引用根据用户身份验证对象访问权限
权限提升用户无法提升自己的权限
CORS已正确限制来源
方法限制仅接受允许的 HTTP 方法
6. 安全配置错误(A05:2021)
检查项验证内容
默认凭据未使用默认密码
错误处理不向用户暴露堆栈跟踪
安全标头已设置 CSP、X-Frame-Options 等
调试模式在生产环境中已禁用
不必要的功能已移除未使用的端点/功能
7. 跨站脚本(A03:2021)
检查项验证内容
输出编码显示前对用户输入进行编码
DOM XSS不将用户输入用于 innerHTML
模板安全模板引擎会自动转义
CSP已配置内容安全策略
// VULNERABLE
element.innerHTML = userInput;

// SECURE
element.textContent = userInput;
// OR
element.innerHTML = DOMPurify.sanitize(userInput);
8. 不安全的反序列化(A08:2021)
检查项验证内容
对象反序列化不反序列化不可信数据
JSON 解析安全使用 JSON.parse
类型验证对反序列化后的对象进行验证
9. 使用存在已知漏洞的组件(A06:2021)
检查项验证内容
依赖项审计pnpm audit / pip audit 检查无问题
过时的软件包不存在严重过时的依赖项
CVE 检查依赖项中不存在已知 CVE
# Run dependency audit
pnpm audit --prod
# or
pip-audit
10. 日志记录与监控不足(A09:2021)
检查项验证内容
身份验证事件已记录登录成功/失败
访问控制已记录权限拒绝
输入验证已记录验证失败
敏感操作已记录管理员操作
日志完整性日志受到保护,防止篡改

审查流程

步骤 1:识别安全敏感变更
# List changed files matching security patterns
git diff --name-only HEAD~1 | grep -E '(auth|security|middleware|api|password|token|secret|session)'
步骤 2:审查每个文件

对于每个安全敏感文件:

  1. 阅读整个文件(不只是差异)
  2. 对照全部 10 个 OWASP 类别进行检查
  3. 记录发现的问题及其严重级别
步骤 3:检查依赖项
# Audit dependencies
pnpm audit --prod

# Check for outdated
pnpm outdated
步骤 4:记录发现的问题

使用以下严重级别:

严重级别说明操作
CRITICAL可被利用的漏洞,存在数据泄露风险合并前必须修复
HIGH严重的安全弱点合并前必须修复
MEDIUM深度防御问题合并前应该修复
LOW轻微改进可以在后续问题中修复
步骤 5:在审查文档中添加安全部分

在主审查文档中添加:

### Security Review

**Security-Sensitive:** YES
**Reviewed By:** [WORKER_ID or codex-subagent security-reviewer]
**OWASP Categories Checked:** 10/10

#### Security Findings

| # | OWASP Category | Severity | Finding | Status |
|---|----------------|----------|---------|--------|
| 1 | A03 Injection | CRITICAL | SQL injection in findUser() | FIXED |
| 2 | A02 Sensitive Data | HIGH | API key in config.ts | DEFERRED #456 |
| 3 | A01 Access Control | MEDIUM | Missing auth on /admin | FIXED |

#### Dependency Audit

pnpm audit: 0 vulnerabilities


**Security Review Status:** [PASS|ISSUES_FIXED|ISSUES_DEFERRED]

安全审查文档(独立)

如果安全审查内容较多,请单独发布评论:


## Security Review

| Property | Value |
|----------|-------|
| Issue | #123 |
| Reviewer | `security-reviewer` subagent (codex-subagent) |
| Reviewed | 2025-12-29T10:30:00Z |

### Files Reviewed

- src/auth/login.ts
- src/middleware/authenticate.ts
- src/api/users.ts

### OWASP Checklist Results

| # | Category | Status | Notes |
|---|----------|--------|-------|
| A01 | Broken Access Control | PASS | Auth middleware on all protected routes |
| A02 | Cryptographic Failures | PASS | bcrypt for passwords, TLS enforced |
| A03 | Injection | FIXED | Parameterized SQL queries now |
| A04 | Insecure Design | PASS | - |
| A05 | Security Misconfiguration | PASS | - |
| A06 | Vulnerable Components | PASS | pnpm audit clean |
| A07 | Auth Failures | PASS | Rate limiting, secure sessions |
| A08 | Data Integrity Failures | PASS | - |
| A09 | Logging Failures | NOTE | Consider adding auth failure logging |
| A10 | SSRF | N/A | No server-side requests |

### Dependency Audit

found 0 vulnerabilities


**Security Review Status:** PASS

检查清单

完成安全审查前:

  • 已审查所有变更过的安全敏感文件
  • 已检查全部 10 个 OWASP 类别
  • 已运行依赖项审计
  • 已修复所有 CRITICAL/HIGH 级别的问题
  • 所有延期处理的问题均有跟踪工单
  • 已在审查文档中添加安全部分
  • 已在主文档中将 Security-Sensitive 标记为 YES

集成

此技能由以下情况触发:

  • 变更符合安全敏感文件模式
  • 显式调用
  • codex-subagent security-reviewer

此技能与以下工具集成:

  • comprehensive-review - 安全性是第 4 项标准
  • review-gate - 对安全敏感变更验证是否已进行安全审查

此技能由以下规则强制执行:

  • .codex/rules/security-sensitive.md 条件规则
  • PR 门禁自动化(如果 PR 涉及安全敏感内容但未经过审查,则阻止 PR)

评论

支持 Markdown