6.0 KiB
6.0 KiB
Nexus 代码问题修复计划
提交部门: 管理组 部门负责人: 项目经理 报告日期: 2026-05-20 状态: 待审查 ⏳
1. 问题总览与优先级
| 优先级 | 数量 | 说明 |
|---|---|---|
| P0 — 已登记待改 | 3 项 | 原代码审查遗留,project/status.md 已标记 |
| P1 — 安全中危 | 5 项 | 新发现的安全问题,涉及密钥/注入/泄露 |
| P2 — 代码质量 | 5 项 | 硬编码、日志规范、路径兼容性等 |
2. 人员分工与技能安排
2.1 工程部 — 代码修复执行
| 人员/技能 | 分配任务 | 预估工时 |
|---|---|---|
| PHP 开发者 | ① api_proxy.php 冗余认证注释清理② files.php fm.uploadRaw 死代码删除③ install.php SQL注入防护 |
1.5h |
| Python 开发者 | ④ health_checker.py+ssh_direct.py 批量 COMMIT 重构⑤ retry_engine*.py 三合一清理(确定在用版本,删除死代码)⑥ config.py 默认密钥加固 |
2h |
| 安全工程师 | ⑦ db.php:48 密码返回脱敏方案设计⑧ 全库 @ 抑制符/空catch审计整改 |
1h |
| Senior Developer | ⑨ tinyfm.php 解压异常 $res=true 修复⑩ 代码审查 + PR 质量把关 |
1h |
2.2 测试部 — 修复验证
| 人员/技能 | 分配任务 | 预估工时 |
|---|---|---|
| Verify | 验证每个修复是否到位,逐项确认关闭 | 1h |
| 安全测试 | 回归验证安全类修复(6a/6e/6g/6i) | 0.5h |
| 测试结果分析师 | 输出最终验证报告 | 0.5h |
| 现实检验者 | 检查实际运行效果,确认无回归 | 0.5h |
2.3 管理组 — 决策与监督
| 人员/技能 | 职责 |
|---|---|
| 项目经理 | 审批计划、验收决策、资源协调 |
| 测试部(整体) | 修复完成后执行回归测试,出具测试报告 |
3. 详细修复方案
P0 — 已登记待改(3项)
#2 api_proxy.php:22-27 冗余认证
- 现状:
require auth.php已做认证,6行后又重复检查$_SESSION['logged_in'] - 修复方案: 添加注释说明"auth.php 已处理认证,此处为二次校验防止配置遗漏" 或 删除冗余代码
- 负责: PHP 开发者
- 预估: 15min
#3 files.php:208 fm.uploadRaw 死代码
- 现状: 函数定义后全库零调用
- 修复方案: 删除第208-210行
- 负责: PHP 开发者
- 预估: 5min
#6 health_checker.py+ssh_direct.py 逐COMMIT
- 现状: 每服务器操作后单独
db.commit() - 修复方案: 收集多个更新后统一 COMMIT,减少 DB I/O
- 负责: Python 开发者
- 预估: 30min
P1 — 安全中危(5项)
6a config.py:12 默认密钥
- 现状:
SECRET_KEY = "change-me-in-production-use-openssl-rand-hex-32" - 修复方案: 启动时检测默认值则报错退出,强制用户通过环境变量设置
- 负责: Python 开发者
- 预估: 20min
6c retry_engine*.py 三份重复代码
- 现状: 3个文件几乎相同,
retry_engine_fix.py有语法错误(多行字符串未连接) - 修复方案: 确定在用版本,删除死文件,提取公共逻辑
- 负责: Python 开发者
- 预估: 30min
6e install.php:56-57 SQL注入
- 现状:
$_POST['db_name']直接拼入 SQL - 修复方案: 参数化查询或严格正则过滤
$dbName(仅允许字母数字下划线) - 负责: PHP 开发者
- 预估: 15min
6g tinyfm.php:1208-1209 静默失败
- 现状: 解压异常时
$res = true(把失败当成功) - 修复方案: 改为
$res = false+ 记录错误信息 - 负责: Senior Developer
- 预估: 10min
6i db.php:48 密码泄露
- 现状:
getServers()返回解密后的 SSH 密码 - 修复方案: 新增
getServersSafe()方法脱敏密码字段,审计调用方按需切换 - 负责: 安全工程师 + PHP 开发者
- 预估: 30min
P2 — 代码质量(5项)
| # | 问题 | 修复方案 | 负责 | 预估 |
|---|---|---|---|---|
| 6b | agent_installer.py 硬编码URL |
提取为配置项 | Python 开发者 | 15min |
| 6d | print() 改 logging |
替换为 logging 模块 | Python 开发者 | 20min |
| 6f | @ 抑制符/空catch |
添加错误日志记录 | 安全工程师 | 30min |
| 6h | safePath() 硬编码路径 |
提取为配置项或动态获取 | PHP 开发者 | 15min |
| 6j | Redis 硬编码连接 | 使用配置项兜底 | Python 开发者 | 10min |
4. 执行时间线
Phase 1 — P0 修复(~1h)
├─ #3 files.php uploadRaw 删除 (5min)
├─ #2 api_proxy.php 冗余认证 (15min)
└─ #6 批量 COMMIT 重构 (30min)
Phase 2 — P1 安全修复(~1.5h)
├─ 6e install.php SQL注入 (15min)
├─ 6g tinyfm.php 静默失败 (10min)
├─ 6a config.py 密钥加固 (20min)
├─ 6c retry_engine 三合一 (30min)
└─ 6i db.php 密码脱敏 (30min)
Phase 3 — P2 质量修复(~1.5h)
├─ 6b/6d/6j Python端清理 (45min)
├─ 6f 错误处理审计 (30min)
└─ 6h safePath路径提取 (15min)
Phase 4 — 测试验证(~2h)
├─ 回归测试 + 安全测试
├─ 实际运行验证
└─ 测试报告输出
5. 风险与注意事项
| 风险 | 影响 | 缓解措施 |
|---|---|---|
retry_engine* 三合一可能误删在用文件 |
重试队列异常 | 先确认 main.py 中 import 路径,保留被引用的版本 |
db.php:48 密码脱敏可能影响调用方 |
部分功能密码读取失败 | 逐个审计调用方:deploy.php、api_proxy.php 等 |
safePath() 路径修改可能影响现有部署 |
文件路径解析异常 | 增加兼容处理,旧路径格式仍可识别 |
6. 审批
| 角色 | 意见 | 签名 | 日期 |
|---|---|---|---|
| 项目经理 | ⏳ 待审批 | — | — |
下一步: 请项目经理审查本计划,批准后按 Phase 1→4 顺序执行。