ether-pms/.docs/code-review/2026-04-26/report.md

3.8 KiB
Raw Blame History

Code Review 报告ether/ether-pms

扫描时间2026-04-26 18:34
分支main
状态⚠️ WARNING


📊 扫描概况

项目 数值
扫描文件 212 个 Java 文件
问题总数 14 个
高危critical 10 个
中危high 4 个
低危low 0 个

🔥 问题详情

1. 硬编码密钥/密码10 处)

文件 行号 说明 修复建议
JwtTokenProvider.java 175, 194 JWT 密钥硬编码 使用 @Value("${jwt.secret}")
PasswordService.java 32 配置类含密钥 移至配置中心
LoginAttemptService.java 23 KEY_PREFIX 硬编码 提取为常量配置
User.java 133, 134 JPA 注解含 secret 环境变量注入
Role.java 101, 102 JPA 注解含 secret 环境变量注入
SysConfig.java 41 config_key 字段 允许外部覆盖
MaintenanceTaskServiceImpl.java 78 关键词数组硬编码 提取为配置

2. 缺少权限校验4 处)

文件 行号 说明 修复建议
OwnershipEntityController.java 18 Controller 缺少 @PreAuthorize 添加权限注解
MaintenanceTaskController.java 25 Controller 缺少 @PreAuthorize 添加权限注解
InspectionItemController.java 21 Controller 缺少 @PreAuthorize 添加权限注解
InspectionRecordController.java 22 Controller 缺少 @PreAuthorize 添加权限注解
DataAccessController.java 20 Controller 缺少 @PreAuthorize 添加权限注解
WorkOrderController.java 24 Controller 缺少 @PreAuthorize 添加权限注解

📋 OWASP Top 10 覆盖检查

漏洞类型 检查状态 说明
A01: 破损访问控制 ⚠️ 发现 6 处 Controller 缺少权限校验
A02: 密码学失败 ⚠️ 发现 10 处 密钥硬编码
A03: 注入 未发现 SQL/XSS/Command 未检测到
A05: 安全配置错误 未发现 Debug/CORS 未检测到
A06: SSRF 未发现 URL 未校验未检测到
A07: XSS 未发现 输出未转义未检测到

🎯 修复优先级

🔴 高优先级(立即修复)

  1. 密钥/密码硬编码10 处)
    • 步骤:替换为 @Value("${xxx}") 或配置中心
    • 影响:严重安全风险

🟠 中优先级(本周修复)

  1. 缺少权限校验6 处 Controller
    • 步骤:添加 @PreAuthorize("hasPermission('xxx')")
    • 影响:未授权访问风险

🧪 验收标准

修复后需满足:

  • 无明文密钥/密码(全部通过环境变量或配置中心注入)
  • 所有 Controller 方法有 @PreAuthorize 注解
  • 重新运行 skl_code_review.pystatus: ok

📝 给 Trellis/Qoder 的修复检查提示词

请按以下标准修复代码安全问题:

## 高优先级Critical

1. **硬编码密钥/密码10 处)**
   - 检查所有包含 secret/password/key 的硬编码字符串
   - 用环境变量或 `@Value("${key.name}")` 替换
   - 特别关注JwtTokenProvider.java, PasswordService.java, LoginAttemptService.java

2. **缺少权限校验6 处 Controller**
   - Controller 类缺少 `@PreAuthorize` 注解
   - 添加方法级权限:`@PreAuthorize("hasPermission('xxx')")`
   - 特别关注:所有 `*Controller.java` 类

## 验收标准

✅ 密钥/密码必须来自 `@Value` 或配置中心
✅ 所有 Controller 方法必须有权限注解
✅ 禁止在代码中出现明文 secret/password
✅ 通过 OWASP Top 10 审计

## 修复后重新扫描

运行:
```bash
python3 skl_code_review.py

确保 status: ok


---

*报告生成工具Alpha Code Review Skill (skl-code-review)*  
*日期2026-04-26 18:34*