T11
优化与维护
⭐⭐⭐⭐
⏱ 约 60 分钟
安全审查
Security Review
💡 适用场景: 安全审查、漏洞检查
📄 T11: Security Review(安全审查) 其他
⭐⭐⭐⭐ 中高级 | 识别安全漏洞,实施防护措施
💡 核心概念 核心概念
常见的安全威胁(OWASP Top 10):
- 注入攻击 (SQL、Command等)
- 认证破坏 (弱密码、会话管理不当)
- 敏感数据泄露 (数据未加密、日志泄露)
- XML外部实体 (XXE攻击)
- 访问控制缺陷 (权限检查不严)
- 安全配置缺陷 (默认密码、调试模式开启)
- XSS跨站脚本
- 不安全反序列化
- 使用有已知漏洞的组件
- 不充分的日志和监控
✅ 最佳实践 最佳实践
🎯 原则1: 输入验证
- 验证所有用户输入
- 使用白名单而非黑名单
- 设置输入长度限制
🎯 原则2: 防御注入
- 使用参数化查询(PreparedStatement)
- 对特殊字符进行转义
- 使用ORM框架自动处理
🎯 原则3: 敏感数据保护
- 加密敏感数据(密码、API key)
- HTTPS传输
- 不在日志中记录敏感信息
- 访问控制和审计
🎯 原则4: 安全配置
- 关闭不需要的功能
- 更改默认密码
- 及时更新依赖包
- 定期安全扫描
📄 常见安全审查场景 其他
场景1: 代码安全审查
Prompt:
请对这段代码进行安全审查。
代码:
```python
@app.route('/search')
def search():
query = request.args.get('q')
sql = f"SELECT * FROM products WHERE name LIKE '{query}%'"
results = db.execute(sql)
return render_template('results.html', products=results)
检查重点:
- SQL注入漏洞
- 输入验证
- 输出转义
- 认证/授权
- 日志和监控
请给出:
- 发现的漏洞
- 攻击方式示例
- 修复代码
### 场景2: API安全设计
**Prompt:**
我正在设计一个API,需要确保安全。
需要考虑的安全问题:
- 认证方式(什么是最安全的?)
- 令牌过期(多长时间合适?)
- CORS配置(怎样防止跨域攻击?)
- 速率限制(怎样实现?)
- HTTPS/TLS
- 日志敏感信息
请提供:
- API认证方案
- 安全最佳实践
- 代码示例
### 场景3: 依赖安全扫描
**Prompt:**
我的项目使用了这些依赖,请检查是否有已知漏洞。
dependencies:
- Spring Boot 2.6.0
- Jackson 2.13.0
- Log4j 2.14.0
- ... [其他依赖]
问题:
- 这些版本有已知漏洞吗?
- 应该升级到哪个版本?
- 升级时需要注意什么?
---
📄 安全工具和框架 其他
| 工具 | 用途 | 特点 |
|---|---|---|
| OWASP ZAP | Web应用安全扫描 | 免费自动化工具 |
| Burp Suite | 渗透测试 | 专业强大 |
| Snyk | 依赖漏洞扫描 | 集成CI/CD |
| Sonarqube | 代码质量和安全 | 综合分析 |
📋 安全审查检查清单 检查清单
📄 🎓 下一步 其他
- 发现安全bug → T03: Bug Diagnosis
- 修复后需要测试 → T05/T06: Testing
💬 Prompt 模板 (3)
安全审查 - Prompt 1
检查重点:
1. SQL注入漏洞
2. 输入验证
3. 输出转义
4. 认证/授权
5. 日志和监控
请给出:
1. 发现的漏洞
2. 攻击方式示例
3. 修复代码
安全审查 - Prompt 2
我正在设计一个API,需要确保安全。
需要考虑的安全问题:
1. 认证方式(什么是最安全的?)
2. 令牌过期(多长时间合适?)
3. CORS配置(怎样防止跨域攻击?)
4. 速率限制(怎样实现?)
5. HTTPS/TLS
6. 日志敏感信息
请提供:
1. API认证方案
2. 安全最佳实践
3. 代码示例
安全审查 - Prompt 3
我的项目使用了这些依赖,请检查是否有已知漏洞。
dependencies:
- Spring Boot 2.6.0
- Jackson 2.13.0
- Log4j 2.14.0
- ... [其他依赖]
问题:
1. 这些版本有已知漏洞吗?
2. 应该升级到哪个版本?
3. 升级时需要注意什么?