Files
biji/doc/security-analysis.md
ikmkj 6fdc3a491c docs: 添加项目安全架构分析文档
Co-authored-by: aider (deepseek/deepseek-chat) <aider@aider.chat>
2025-08-04 19:42:56 +08:00

1.5 KiB
Raw Permalink Blame History

安全架构分析文档

1. 认证与授权

  • JWT认证:使用JwtTokenUtil实现基于HS512算法的令牌签发/验证
  • 有效期检查:令牌包含过期时间(expiration)
  • 过滤器链JwtAuthenticationTokenFilter拦截请求验证令牌
  • 用户上下文:通过UserDetailsService加载用户权限信息

2. 密码安全

  • BCrypt加密:使用PasswordUtils进行密码哈希存储(工作因子10)
  • 盐值机制:每次加密生成随机盐值
  • 防暴力破解:无明文密码传输

3. 输入安全

  • XSS防护
    • XSSInterceptor拦截器过滤请求参数
    • 使用HtmlUtil.filter()清理HTML内容
  • CSRF防护:未显式配置(依赖JWT无状态特性)

4. API安全

  • CORS配置:通过WebConfig控制跨域访问
  • 生产环境保护
    • Knife4j文档仅在非生产环境启用(@Profile("!prod"))
    • 敏感接口需要有效JWT

5. 注册安全

  • 注册码机制
    • 使用RegistrationCodeService管理时效性注册码
    • 每日自动清理过期注册码(@Scheduled)
  • 注册开关:可通过SystemSettingService动态关闭注册功能

6. 数据安全

  • 敏感数据
    • 密码字段应始终加密存储
    • JWT令牌不存储敏感信息
  • SQL防护使用MyBatis参数绑定防止注入

改进建议

  1. 增加密码强度策略
  2. 实现JWT黑名单/刷新机制
  3. 添加敏感操作日志审计
  4. 配置HTTPS强制跳转
  5. 增加API速率限制

文档最后更新2025-08-04