Prompt file imported from zhijunio/spring-boot-3-microservices (
.cursor/commands/security-audit.md). Copyright stays with the author.
安全审计
概述
对代码库进行全面的安全评估,识别并修复漏洞。基于Spring Boot + MyBatis Plus + MySQL技术栈的安全最佳实践。
审计步骤
1. 依赖审计
- 漏洞扫描: 使用OWASP Dependency Check扫描已知CVE漏洞
- 版本更新: 检查并更新过期依赖包
- 第三方审核: 审核第三方库的安全性和可信度
- 许可证合规: 检查依赖许可证合规性
- 供应链安全: 验证依赖来源和完整性
2. 代码安全审查
2.1 常见漏洞检查
- SQL注入: 检查MyBatis Plus查询是否使用参数化查询
- XSS攻击: 验证输入输出转义和CSP策略
- CSRF攻击: 检查CSRF防护配置
- 路径遍历: 验证文件操作路径限制
- 命令注入: 检查系统命令执行安全性
- 反序列化漏洞: 检查Jackson/ObjectMapper配置
2.2 身份验证与授权
- 认证机制: 验证JWT/OAuth2配置安全性
- 密码策略: 检查密码复杂度、加密存储
- 会话管理: 验证会话超时、并发控制
- 权限控制: 检查@PreAuthorize、方法级权限
- 多租户隔离: 验证租户数据隔离机制
- API安全: 检查REST API权限控制
2.3 数据处理安全
- 敏感数据加密: 检查@EncryptField注解使用
- 密钥管理: 验证密钥轮换、存储安全
- 数据脱敏: 检查日志中敏感信息脱敏
- 数据备份: 验证备份数据加密
- 数据销毁: 检查逻辑删除和物理删除
3. 基础设施安全
3.1 环境配置
- 环境变量: 检查敏感配置是否通过环境变量注入
- 配置文件: 验证application.yml中无明文密码
- 密钥管理: 检查Vault/密钥管理服务集成
- 配置加密: 验证敏感配置加密存储
3.2 网络安全
- HTTPS配置: 检查SSL/TLS证书配置
- CORS策略: 验证跨域请求安全配置
- 防火墙规则: 检查网络访问控制
- 负载均衡: 验证负载均衡器安全配置
3.3 访问控制
- 数据库访问: 检查数据库连接权限最小化
- Redis访问: 验证Redis访问控制和认证
- 文件系统: 检查文件访问权限
- 容器安全: 验证Docker容器安全配置
4. 运行时安全
4.1 监控与日志
- 安全日志: 检查认证失败、权限拒绝日志
- 异常监控: 验证异常和错误监控
- 性能监控: 检查性能异常检测
- 审计日志: 验证关键操作审计记录
4.2 防护机制
- 限流控制: 检查API限流配置
- 重放攻击防护: 验证请求重放检测
- 暴力破解防护: 检查登录失败锁定机制
- 异常检测: 验证异常行为检测
安全清单
依赖安全
- 依赖已更新且无已知漏洞
- 使用可信的Maven中央仓库
- 定期运行
mvn dependency:check - 启用依赖漏洞扫描CI/CD
代码安全
- 无硬编码密钥/机密信息
- 已实施完整的输入校验
- 使用参数化查询防止SQL注入
- 输出转义防止XSS攻击
- 敏感字段使用@EncryptField加密
认证授权
- 身份验证机制安全可靠
- 密码使用BCrypt等安全算法加密
- JWT令牌配置安全(签名、过期时间)
- 权限控制细粒度且完整
- 多租户数据隔离有效
数据安全
- 敏感数据加密存储
- 密钥管理安全(轮换、存储)
- 日志中敏感信息已脱敏
- 数据传输使用HTTPS
- 数据备份加密存储
配置安全
- 生产环境配置通过环境变量注入
- 配置文件无明文密码
- 使用配置中心管理敏感配置
- 不同环境配置隔离
网络安全
- HTTPS配置正确且证书有效
- CORS策略最小化配置
- 防火墙规则合理
- 网络访问控制到位
监控安全
- 安全事件日志完整
- 异常行为监控有效
- 审计日志记录关键操作
- 安全告警机制完善
安全工具推荐
静态分析
- SonarQube: 代码质量安全扫描
- SpotBugs: Java静态分析
- PMD: 代码质量检查
- Checkmarx: 安全漏洞扫描
依赖扫描
- OWASP Dependency Check: 依赖漏洞扫描
- Snyk: 开源依赖安全扫描
- GitHub Security Advisories: GitHub安全建议
运行时安全
- OWASP ZAP: 动态安全测试
- Burp Suite: Web应用安全测试
- Nessus: 漏洞扫描
- Wireshark: 网络流量分析
密钥管理
- HashiCorp Vault: 密钥管理
- AWS KMS: 云密钥管理
- Azure Key Vault: Azure密钥管理
安全审计报告模板
审计信息
- 审计日期: ___________
- 审计人员: ___________
- 审计范围: ___________
- 审计工具: ___________
发现的问题
| 严重程度 | 问题描述 | 影响 | 修复建议 | 状态 |
|---|---|---|---|---|
| 高危 | ||||
| 中危 | ||||
| 低危 |
修复计划
- 立即修复高危问题
- 30天内修复中危问题
- 90天内修复低危问题
- 建立持续安全监控
后续行动
- 建立安全开发流程
- 定期安全培训
- 自动化安全扫描
- 安全事件响应计划
