springboot-security

Spring Boot 安全开发助手,帮你配置身份认证、权限控制、输入验证、CSRF 防护和密钥管理。提供安全检查清单,确保你的 Java 后端服务在生产环境中安全可靠。

这个技能能帮你做什么

如果你在用 Spring Boot 开发 Java 后端服务,这个技能能帮你做好安全方面的各种事情:

  • 身份认证 —— 配置 JWT、OAuth2 或 Session 认证,验证用户身份是否合法
  • 权限控制 —— 按角色或权限限制接口访问,确保用户只能访问自己该访问的资源
  • 输入验证 —— 校验用户提交的数据,防止恶意输入导致的安全问题
  • 密码安全 —— 使用安全的密码哈希算法(如 BCrypt)存储密码,绝不存明文
  • 防 SQL 注入 —— 使用参数化查询,避免字符串拼接导致的数据库攻击
  • CSRF 防护 —— 针对 Web 应用配置合适的 CSRF 保护策略
  • 密钥管理 —— 将数据库密码、API 密钥等敏感信息放到环境变量或 Vault 中管理
  • 安全响应头 —— 配置 CSP、XSS 防护等 HTTP 响应头,增强浏览器端安全
  • 跨域控制 —— 合理配置 CORS,限制哪些网站可以访问你的接口
  • 接口限流 —— 防止接口被过度调用,保护系统不被刷爆
  • 依赖安全 —— 检查项目依赖是否有已知漏洞,及时更新修复

什么时候用

  • 新项目上线的安全审查 —— 确保所有接口都有认证和授权保护
  • 添加用户认证 —— 需要登录、注册、权限管理功能时
  • 处理用户输入 —— 接收用户提交的数据时,防止注入攻击
  • 配置生产环境 —— 部署前检查安全配置是否到位
  • 安全漏洞修复 —— 发现安全问题后,按照最佳实践修复
  • 代码审查 —— 审查代码中可能存在的安全隐患

主要覆盖哪些场景

  1. 身份认证 —— JWT Token 验证、OAuth2 集成、Session 管理
  2. 权限授权 —— 基于角色的访问控制、方法级安全注解
  3. 输入验证 —— Bean Validation、自定义校验器、数据清洗
  4. 密码安全 —— 密码哈希、密码强度要求
  5. SQL 注入防护 —— 参数化查询、Repository 安全使用
  6. CSRF 保护 —— 针对不同应用类型的 CSRF 策略配置
  7. 密钥管理 —— 环境变量、Vault 集成、密钥轮换
  8. 安全响应头 —— CSP、XSS、Frame 选项等安全头部配置
  9. CORS 配置 —— 跨域资源共享的安全配置
  10. 限流防护 —— 接口调用频率限制,防止暴力破解
  11. 依赖安全 —— 漏洞扫描、依赖更新管理
  12. 日志安全 —— 避免在日志中记录敏感信息

怎么用

在 Spring Boot 安全开发中遇到以下情况,都可以询问这个技能:

  • "怎么配置 JWT 认证?"
  • "接口怎么添加权限控制?"
  • "用户输入怎么安全校验?"
  • "密码怎么安全存储?"
  • "CSRF 应该怎么配置?"
  • "密钥怎么管理比较安全?"
  • "CORS 怎么配置才安全?"
  • "接口限流怎么做?"
  • "上线前要检查哪些安全项?"

核心原则

  • 默认拒绝 —— 没有明确授权的接口默认不允许访问
  • 最小权限 —— 只给用户执行操作所需的最小权限
  • 验证一切输入 —— 不信任任何来自用户的数据,全部校验和清洗
  • 安全默认配置 —— 使用安全的默认设置,避免不安全默认值
  • 密钥不外泄 —— 密码、Token、API 密钥绝不放在代码里
  • 安全即设计 —— 安全不是后期补丁,而是设计时就要考虑

适用场景

适合的情况:

  • 用 Spring Boot 开发需要提供认证和授权的后端服务
  • 需要保护 API 接口不被未授权访问
  • 需要处理用户注册、登录、权限管理
  • 需要防范常见的 Web 安全攻击(注入、XSS、CSRF 等)
  • 需要符合安全合规要求的项目
  • 上线前需要进行安全审查

不适合的情况:

  • 完全公开、不需要任何保护的接口
  • 非 Java/Spring Boot 技术栈的项目
  • 纯内部工具且不需要认证
  • 已经由网关或反向代理统一处理安全的场景(但仍建议了解)
v1.0.0 2026-07-17
下载