用途:为 Java Spring Boot 服务提供 Spring Security 安全实践参考,适用于添加认证、处理输入、创建接口或管理密钥的场景。
主要能力:认证方面建议优先使用无状态 JWT 或不透明令牌配合吊销列表,会话使用 httpOnly、Secure、SameSite=Strict Cookie,并用 OncePerRequestFilter 或资源服务器校验令牌。授权方面启用 @EnableMethodSecurity,使用 @PreAuthorize 做角色或自定义权限判断,默认拒绝、仅暴露必要范围。输入校验使用 Bean Validation,在控制器加 @Valid,DTO 上加 @NotBlank、@Email、@Size 等约束,渲染 HTML 前按白名单清洗。SQL 注入防护使用 Spring Data 仓库或参数化查询,原生查询用 :param 绑定,禁止字符串拼接。密码使用 BCrypt 或 Argon2 哈希,通过 PasswordEncoder Bean 处理。CSRF 对浏览器会话应用保持开启,对纯 Bearer 令牌 API 可关闭并采用无状态会话。密钥从环境变量或 Vault 加载,不写入源码或 application.yml。安全响应头配置 CSP、frameOptions、xssProtection、referrerPolicy。CORS 在安全过滤器层配置,限制来源,生产环境禁用 *。限流可用 Bucket4j 或网关级限制,超限返回 429。依赖安全在 CI 中运行 OWASP Dependency Check 或 Snyk,保持 Spring Boot 与 Spring Security 为受支持版本。日志不得记录密钥、令牌、密码或完整 PAN 数据。文件上传需校验大小、内容类型与扩展名,存放在 web 根目录之外。
使用方式:资料以代码示例展示各主题的推荐写法与反例,例如 JwtAuthFilter、@PreAuthorize、CreateUserDto、参数化 @Query、PasswordEncoder Bean、CSRF 与 sessionManagement 配置、CORS Bean、RateLimitFilter 等,可直接参考对应片段。
适用场景:Spring Boot 服务的安全评审与加固,包括认证授权、输入处理、接口创建、密钥管理、限流与依赖扫描。
限制:资料未提供具体版本要求、性能数据、收费信息或完整安装步骤;示例代码需结合项目实际调整。