charging-cabinet/tasks/review-round-2.md
2026-07-02 05:38:01 +08:00

129 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 代码审查任务(第二轮)
## 目标
审查安全修复和代码质量优化后的代码,确认问题已解决,无新引入问题。
## 审查范围
### 后端 (Rust + Axum)
- `software/server/src/` 目录下所有文件
- 重点审查安全修复的4个问题是否彻底解决
### 前端 (React + TypeScript)
- `software/web/src/` 目录下所有文件
- 重点审查:拆分后的组件结构、构建是否正常
## 审查清单
### 1. 安全修复验证
#### 1.1 SQL注入修复
- [ ] `operation_logs.rs` 使用参数化查询(`.bind()`
- [ ] `charge_records.rs` 的 LIMIT/OFFSET 使用 `.bind()`
- [ ] `energy_stats.rs` 的 LIMIT/OFFSET 使用 `.bind()`
- [ ]`format!` 拼接用户输入到SQL
#### 1.2 密码哈希
- [ ] 使用 argon2 或 bcrypt 哈希密码
- [ ] 登录时使用 `verify_password` 验证
- [ ] 创建/重置用户时哈希密码
- [ ] 数据库password字段长度≥255
#### 1.3 数据隔离
- [ ] `CurrentUser` 包含 `organization_id`
- [ ] 查询自动附加组织过滤
- [ ] 总管理员可看全部,企业管理员只看本组织
- [ ] 无组织用户无法查看数据
#### 1.4 权限校验
- [ ] 所有路由都有 `check_permission` 调用
- [ ] 权限码与功能匹配
- [ ] 无越权访问可能
### 2. 代码质量验证
#### 2.1 文件拆分
- [ ] `organizations.rs` ≤300行
- [ ] `users.rs` ≤300行
- [ ] `devices/index.tsx` ≤300行
- [ ] 拆分后组件职责单一
#### 2.2 构建检查
- [ ] `cargo check` 零报错零警告
- [ ] `cargo clippy` 零报错零警告
- [ ] `tsc --noEmit` 零报错零警告
- [ ] `vite build` 成功无IconFolderOpen错误
#### 2.3 JWT安全
- [ ] 启动时检测默认密钥并打印WARN
- [ ] 生产环境必须设置JWT_SECRET
### 3. 回归测试
- [ ] 登录功能正常(密码哈希后)
- [ ] 组织树查询正常(数据隔离后)
- [ ] 充电记录查询正常(参数化查询后)
- [ ] 前端页面正常渲染(组件拆分后)
### 4. 新引入问题检查
- [ ] 无新的编译错误
- [ ] 无新的类型错误
- [ ] 无循环依赖
- [ ] 无未使用的导入/变量
## 输出格式
```markdown
# 代码审查报告(第二轮)
## 总体评价
[整体质量评分 1-10分简要评价]
## 安全修复验证结果
| 问题 | 状态 | 说明 |
|------|------|------|
| SQL注入 | ✅/❌ | [验证结果] |
| 密码哈希 | ✅/❌ | [验证结果] |
| 数据隔离 | ✅/ | [验证结果] |
| 权限校验 | ✅/❌ | [验证结果] |
## 代码质量验证结果
| 项目 | 状态 | 说明 |
|------|------|------|
| 文件拆分 | ✅/❌ | [验证结果] |
| 构建检查 | ✅/❌ | [验证结果] |
| JWT安全 | ✅/❌ | [验证结果] |
## 新引入问题
[列出新发现的问题,如无则写"无"]
## 总结
[总体结论]
```
## 审查工具
```bash
# 后端静态检查
cd software/server && cargo check && cargo clippy
# 前端类型检查
cd software/web && tsc --noEmit
# 前端构建测试
cd software/web && vite build
# 代码行数统计
find src -name "*.rs" -exec wc -l {} + | sort -n
find src -name "*.tsx" -exec wc -l {} + | sort -n
```
## 质量约束
1. 审查必须覆盖所有清单项目
2. 每个问题必须给出具体位置和修复建议
3. 安全修复必须逐项验证
4. 审查报告用中文撰写