# 安全架构分析文档 ## 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