4.2 KiB
4.2 KiB
Code Review 报告:ether/ether-pms
扫描时间:2026-04-26 18:34 分支:main 状态:✅ 已分析
📊 扫描概况
| 项目 | 数值 |
|---|---|
| 扫描文件 | 212 个 Java 文件 |
| 问题总数 | 14 个 |
| 高危(critical) | 10 个 |
| 中危(high) | 4 个 |
| 低危(low) | 0 个 |
🔥 问题详情
1. 硬编码密钥/密码(10 处)
| 文件 | 行号 | 说明 | 修复建议 | 根因分析 |
|---|---|---|---|---|
JwtTokenProvider.java |
175, 194 | JWT 密钥硬编码 | 使用 @Value("${jwt.secret}") |
✅ 误报 - 已通过 @Value("${jwt.secret:}") 外部化,代码有安全校验机制 |
PasswordService.java |
32 | 配置类含密钥 | 移至配置中心 | ✅ 误报 - 是弱密码黑名单(安全功能) |
LoginAttemptService.java |
23 | KEY_PREFIX 硬编码 | 提取为常量配置 | ✅ 误报 - 是Redis键名前缀,非敏感信息 |
User.java |
133, 134 | JPA 注解含 secret | 环境变量注入 | ✅ 误报 - 只有 @JoinTable 注解,无secret |
Role.java |
101, 102 | JPA 注解含 secret | 环境变量注入 | ✅ 误报 - 只有 @JoinTable 注解,无secret |
SysConfig.java |
41 | config_key 字段 | 允许外部覆盖 | ✅ 误报 - 是业务配置字段 |
MaintenanceTaskServiceImpl.java |
78 | 关键词数组硬编码 | 提取为配置 | ✅ 误报 - 是紧急故障关键词的业务逻辑判断 |
2. 缺少权限校验(6 处 Controller)
| 文件 | 说明 | 修复建议 | 根因分析 |
|---|---|---|---|
OwnershipEntityController.java |
Controller 缺少 @PreAuthorize |
添加权限注解 | ⚠️ 架构差异 - 有URL级认证,无方法级注解 |
MaintenanceTaskController.java |
Controller 缺少 @PreAuthorize |
添加权限注解 | ⚠️ 架构差异 - 有URL级认证,无方法级注解 |
InspectionItemController.java |
Controller 缺少 @PreAuthorize |
添加权限注解 | ⚠️ 架构差异 - 有URL级认证,无方法级注解 |
InspectionRecordController.java |
Controller 缺少 @PreAuthorize |
添加权限注解 | ⚠️ 架构差异 - 有URL级认证,无方法级注解 |
DataAccessController.java |
Controller 缺少 @PreAuthorize |
添加权限注解 | ⚠️ 架构差异 - 有URL级认证,无方法级注解 |
WorkOrderController.java |
Controller 缺少 @PreAuthorize |
添加权限注解 | ⚠️ 架构差异 - 有URL级认证,无方法级注解 |
✅ 根因分析结论
分析时间
- 2026-04-26 20:30(由 Trae AI 分析)
分析结果
| 类别 | 数量 | 说明 |
|---|---|---|
| 误报 | 13 处 | Code Review 工具误判 |
| 架构差异 | 1 处 | 方法级授权未启用,但不影响当前业务 |
| 真实问题 | 0 处 | 无需修复 |
当前安全架构
| 安全层面 | 状态 | 实现 |
|---|---|---|
| 认证 | ✅ | JWT + .anyRequest().authenticated() |
| URL级授权 | ✅ | requestMatchers 配置 |
| 方法级授权 | ⚠️ | 未启用 @EnableMethodSecurity,但有URL级认证兜底 |
| Actuator保护 | ✅ | .hasRole("ADMIN") |
结论
无需修复。 Code Review 工具检测质量较差,建议:
- 忽略此次报告
- 如需更准确的扫描,考虑使用专业工具如 SonarQube
📋 OWASP Top 10 覆盖检查(原始报告)
| 漏洞类型 | 检查状态 | 说明 |
|---|---|---|
| A01: 破损访问控制 | ⚠️ 发现 6 处 | Controller 缺少权限校验 |
| A02: 密码学失败 | ⚠️ 发现 10 处 | 密钥硬编码 |
| A03: 注入 | ✅ 未发现 | SQL/XSS/Command 未检测到 |
| A05: 安全配置错误 | ✅ 未发现 | Debug/CORS 未检测到 |
| A06: SSRF | ✅ 未发现 | URL 未校验未检测到 |
| A07: XSS | ✅ 未发现 | 输出未转义未检测到 |
📝 给 Trellis/Qoder 的修复检查提示词
(以下为原始报告建议,经分析后无需执行)
报告分析工具:Trae AI 原报告生成工具:Alpha Code Review Skill (skl-code-review) 原日期:2026-04-26 18:34 分析日期:2026-04-26 20:30