3.2 KiB
3.2 KiB
代码审查任务(第二轮)
目标
审查安全修复和代码质量优化后的代码,确认问题已解决,无新引入问题。
审查范围
后端 (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. 新引入问题检查
- 无新的编译错误
- 无新的类型错误
- 无循环依赖
- 无未使用的导入/变量
输出格式
# 代码审查报告(第二轮)
## 总体评价
[整体质量评分 1-10分,简要评价]
## 安全修复验证结果
| 问题 | 状态 | 说明 |
|------|------|------|
| SQL注入 | ✅/❌ | [验证结果] |
| 密码哈希 | ✅/❌ | [验证结果] |
| 数据隔离 | ✅/ | [验证结果] |
| 权限校验 | ✅/❌ | [验证结果] |
## 代码质量验证结果
| 项目 | 状态 | 说明 |
|------|------|------|
| 文件拆分 | ✅/❌ | [验证结果] |
| 构建检查 | ✅/❌ | [验证结果] |
| JWT安全 | ✅/❌ | [验证结果] |
## 新引入问题
[列出新发现的问题,如无则写"无"]
## 总结
[总体结论]
审查工具
# 后端静态检查
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
质量约束
- 审查必须覆盖所有清单项目
- 每个问题必须给出具体位置和修复建议
- 安全修复必须逐项验证
- 审查报告用中文撰写