129 lines
3.2 KiB
Markdown
129 lines
3.2 KiB
Markdown
# 代码审查任务(第二轮)
|
||
|
||
## 目标
|
||
|
||
审查安全修复和代码质量优化后的代码,确认问题已解决,无新引入问题。
|
||
|
||
## 审查范围
|
||
|
||
### 后端 (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. 审查报告用中文撰写
|