From code-review
代码安全审查与漏洞风险评估能力。 当用户说"安全审查"、"安全检查"、"漏洞扫描"、"SQL注入"、"XSS"、"CSRF"、"OWASP"、"安全风险"、"代码安全"、"渗透测试"时使用此技能。 基于 OWASP Top 10 标准,检测注入攻击(SQL/NoSQL/命令注入)、XSS、访问控制失效、加密机制失效、敏感数据泄露等安全问题。 输出包含 CVSS 评分、漏洞详情和修复代码示例。
How this skill is triggered — by the user, by Claude, or both
Slash command
/code-review:security-reviewThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
专业的安全审查技能,能够识别代码中的安全漏洞、评估安全风险并提供防护建议。
专业的安全审查技能,能够识别代码中的安全漏洞、评估安全风险并提供防护建议。
Security Review 技能提供全面的代码安全分析能力,基于OWASP安全标准和CVE漏洞数据库,识别常见的安全漏洞和风险。
# 按 OWASP 标准进行安全审查
/security-review src/api/ --owasp
# 检查特定合规标准
/security-review src/ --compliance gdpr
# 快速安全扫描
/security-review src/auth/ --scan-type quick
# 深度安全审查
/security-review src/ --depth deep --format report
// 危险代码示例
app.get('/admin/users/:id', (req, res) => {
// 缺少权限检查
User.findById(req.params.id, (err, user) => {
res.json(user);
});
});
// 安全代码示例
app.get('/admin/users/:id', requireAdmin, async (req, res) => {
try {
// 权限检查
if (!hasPermission(req.user, 'read', 'user')) {
return res.status(403).json({ error: 'Insufficient permissions' });
}
const user = await User.findById(req.params.id);
if (!user) {
return res.status(404).json({ error: 'User not found' });
}
// 敏感信息过滤
const { password, ...safeUser } = user.toJSON();
res.json(safeUser);
} catch (error) {
res.status(500).json({ error: 'Internal server error' });
}
});
// 危险代码示例
function encryptPassword(password) {
return crypto.createHash('md5').update(password).digest('hex');
}
// 安全代码示例
const bcrypt = require('bcrypt');
const crypto = require('crypto');
class SecurePassword {
constructor() {
this.saltRounds = 12;
}
async hash(password) {
return bcrypt.hash(password, this.saltRounds);
}
async verify(password, hash) {
return bcrypt.compare(password, hash);
}
generateSecureToken() {
return crypto.randomBytes(32).toString('hex');
}
}
// 危险代码示例
app.get('/search', (req, res) => {
const query = `SELECT * FROM products WHERE name LIKE '%${req.query.q}%'`;
db.query(query, (err, results) => {
res.json(results);
});
});
// 安全代码示例
app.get('/search', async (req, res) => {
try {
// 输入验证
if (!req.query.q || req.query.q.length > 100) {
return res.status(400).json({ error: 'Invalid search query' });
}
// 参数化查询
const query = 'SELECT * FROM products WHERE name LIKE ?';
const results = await db.query(query, [`%${req.query.q}%`]);
res.json(results);
} catch (error) {
console.error('Search error:', error);
res.status(500).json({ error: 'Internal server error' });
}
});
| 影响程度 | 几乎确定 | 很可能 | 可能 | 不太可能 |
|---|---|---|---|---|
| 严重 | 🔴 严重 | 🔴 严重 | 🟡 高危 | 🟡 中危 |
| 高 | 🔴 严重 | 🟡 高危 | 🟡 中危 | 🟢 低危 |
| 中 | 🟡 高危 | 🟡 中危 | 🟢 低危 | 🟢 低危 |
| 低 | 🟡 中危 | 🟢 低危 | 🟢 低危 | 🟢 信息 |
# 安全审查报告
## 基本信息
- **审查范围**: 整个Web应用程序
- **应用类型**: 电商网站
- **技术栈**: Node.js, React, MongoDB
- **审查时间**: 2024-01-15 10:00:00
- **审查标准**: OWASP Top 10 2021
## 风险概览
- **严重漏洞**: 2个
- **高危漏洞**: 5个
- **中危漏洞**: 8个
- **低危漏洞**: 15个
- **安全评分**: 5.2/10
## 🔴 严重漏洞 (立即修复)
### 1. SQL注入漏洞 (CVE-2024-1234)
- **位置**: /api/users/search 第45行
- **CVSS评分**: 9.8 (严重)
- **OWASP分类**: A03:2021 - 注入
- **影响**: 可能导致数据库完全泄露
- **修复方案**: 使用参数化查询
### 2. 硬编码密钥泄露
- **位置**: config/database.js 第12行
- **CVSS评分**: 9.1 (严重)
- **影响**: 数据库完全访问权限
- **修复方案**: 使用环境变量
## 🟡 高危漏洞 (优先修复)
### 3. XSS漏洞
- **位置**: /posts/:id 第78行
- **CVSS评分**: 7.5 (高危)
- **OWASP分类**: A03:2021 - 注入
- **修复**: 使用DOMPurify进行输出编码
## 修复优先级
### 立即修复 (24小时内)
1. SQL注入漏洞 - 数据库泄露风险
2. 硬编码密钥 - 完全系统控制风险
### 本周修复
3. XSS漏洞 - 用户数据泄露
4. CSRF漏洞 - 跨站请求伪造
5. 弱会话管理 - 会话劫持风险
### 下个迭代
6. 缺少速率限制
7. 日志信息泄露
8. 文件上传漏洞
## 安全改进建议
### 1. 实施Web应用防火墙(WAF)
- 推荐使用: Cloudflare WAF, AWS WAF
- 配置规则: OWASP ModSecurity Core Rule Set
### 2. 加强认证和授权
- 实施多因素认证(MFA)
- 使用基于角色的访问控制(RBAC)
- 定期审查用户权限
### 3. 数据保护
- 启用数据库加密
- 实施数据脱敏策略
- 定期备份和恢复测试
## 合规性检查
### GDPR合规
- [ ] 个人数据保护
- [ ] 数据主体权利
- [ ] 数据泄露通知
- [ ] 隐私设计
### PCI DSS合规
- [ ] 支付卡数据保护
- [ ] 网络安全
- [ ] 访问控制
- [ ] 安全监控
## 安全监控建议
### 实时监控
- 异常登录检测
- SQL注入尝试监控
- XSS攻击检测
- 异常API调用监控
### 定期检查
- 月度安全扫描
- 季度渗透测试
- 年度安全审计
- 漏洞管理
## 学习资源
- [OWASP安全指南](https://owasp.org/)
- [NIST网络安全框架](https://www.nist.gov/cyberframework)
- [SANS安全培训](https://www.sans.org/)
# Apache安全配置示例
<Directory "/var/www/html">
# 隐藏服务器信息
ServerTokens Prod
ServerSignature Off
# 防止目录遍历
Options -Indexes
# 安全头
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
Header always set X-XSS-Protection "1; mode=block"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"
# CSP策略
Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'"
</Directory>
const helmet = require('helmet');
const rateLimit = require('express-rate-limit');
// 安全中间件
app.use(helmet({
contentSecurityPolicy: {
directives: {
defaultSrc: ["'self'"],
scriptSrc: ["'self'", "'unsafe-inline'"],
styleSrc: ["'self'", "'unsafe-inline'"],
imgSrc: ["'self'", "data:", "https:"],
},
},
}));
// 速率限制
const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15分钟
max: 100, // 限制每个IP 100个请求
message: 'Too many requests from this IP'
});
app.use('/api/', limiter);
// SQL注入测试用例
const sqlInjectionTests = [
"' OR '1'='1",
"'; DROP TABLE users; --",
"' UNION SELECT username, password FROM users --",
"1' AND (SELECT COUNT(*) FROM users) > 0 --"
];
// XSS测试用例
const xssTests = [
"<script>alert('XSS')</script>",
"<img src=x onerror=alert('XSS')>",
"javascript:alert('XSS')",
"<svg onload=alert('XSS')>"
];
// 路径遍历测试
const pathTraversalTests = [
"../../../etc/passwd",
"..\\..\\..\\windows\\system32\\config\\sam",
"....//....//....//etc/passwd"
];
# GitHub Actions 安全扫描示例
name: Security Scan
on: [push, pull_request]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run SAST
uses: github/super-linter@v3
env:
DEFAULT_BRANCH: main
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VALIDATE_JAVASCRIPT_ES: true
- name: Run dependency check
run: |
npm audit --audit-level high
- name: Run Snyk security scan
uses: snyk/actions/node@master
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
通过系统性的安全审查和持续改进,可以显著提高应用程序的安全性,降低安全风险。
npx claudepluginhub protagonistss/ithinku-plugins --plugin code-reviewGuides OWASP standards-based security reviews and vulnerability assessments. Use for security audits, threat modeling, secure code review, and dependency checks.
Reviews codebases against the OWASP Top 10 vulnerability categories for security audits, pre-launch checks, and post-incident analysis.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.