SuperAPI AI 工具集

springboot-security

安全与审计

查看项目

更新于 10-16 09:35

技能介绍

用途:在 Spring Boot 服务中添加身份验证、处理用户输入、创建端点或管理机密信息时,触发一次安全审查,遵循默认拒绝、输入校验、最小权限原则。

主要能力:

  1. 身份验证:优先无状态 JWT 或带撤回列表的不透明令牌;Session Cookie 使用 httpOnly、Secure、SameSite=Strict;用 OncePerRequestFilter 或资源服务器校验令牌。
  2. 授权:启用 @EnableMethodSecurity,使用 @PreAuthorize("hasRole('ADMIN')") 或自定义 @authz 表达式,默认拒绝。
  3. 输入校验:控制器对 @Valid 使用 Bean Validation,DTO 上使用 @NotBlank、@Email、@Size 等约束,渲染前按白名单清理 HTML。
  4. 防注入:使用 Spring Data 存储库或参数化原生查询(:param),禁止字符串拼接。
  5. 密码:始终用 BCrypt(如成本因子 12)或 Argon2 哈希,使用 PasswordEncoder Bean,严禁明文。
  6. CSRF:浏览器 Session 应用保持启用,纯 Bearer 令牌 API 可禁用并设为 STATELESS。
  7. 机密:源码与 application.yml 不留凭据,使用 ${DB_PASSWORD} 占位符或 Spring Cloud Vault;定期轮换。
  8. 安全响应头:配置 CSP、frameOptions、xssProtection、referrerPolicy。
  9. CORS:在安全过滤器层配置,限制允许源,生产禁用 *。
  10. 速率限制:高开销端点用 Bucket4j 或网关级限制,超限返回 429。
  11. 依赖安全:CI 中运行 OWASP Dependency Check / Snyk,保持 Spring Boot 与 Spring Security 受支持版本。
  12. 日志与上传:禁止记录机密、令牌、密码、完整卡号;文件上传校验大小、类型、扩展名,存放在 Web 根目录外。

使用方式:作为技能在相应场景激活,按上述清单逐项检查,发布前核对:令牌校验与过期、敏感路径授权、输入校验、无拼接 SQL、CSRF 策略、机密外置、安全响应头、速率限制、依赖扫描、日志脱敏。限制:具体版本兼容性、依赖库配置细节与运行环境要求资料暂未提供。