council(draft): SecurityEngineer - create plan.md with security risk assessment
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>feat/task1-c-wallet
parent
4747d92068
commit
a6c3c87ea9
|
|
@ -0,0 +1,118 @@
|
|||
# Council Plan — SecurityEngineer Round 1
|
||||
|
||||
## 角色职责
|
||||
SecurityEngineer — 负责安全风险评估,尤其关注 debug 代码注入、日志文件写入权限、config 泄露等风险点。
|
||||
|
||||
## 当前状态
|
||||
|
||||
### Git 状态(已确认)
|
||||
- Worktree 分支:`council/SecurityEngineer`,HEAD = `4747d92`
|
||||
- **Git status 已确认干净**:所有 modified 文件(Common.php, Plugins.php, common.php, AdminPowerService.php, PluginsService.php, shopxo.php, core.php)均已通过 `git checkout HEAD --` 恢复至 HEAD 状态
|
||||
- 仅 `.claude/` 目录为 untracked(框架自身目录)
|
||||
- `admin.php` / `public/admin.php` 已恢复
|
||||
- `adminwatekc.php`, `debug_power.php`, `test_admin.php`, `public/adminwatekc.php`, `public/test_admin.php` 已不存在(已清理)
|
||||
- `app/plugins/vr_ticket/` 不存在于 worktree 中(untracked,未被追踪)
|
||||
|
||||
### 当前文件安全状态
|
||||
|
||||
| 文件 | 风险点 | 当前状态 |
|
||||
|------|--------|----------|
|
||||
| `app/common.php` | `is_develop: true` / debug 日志 | ✅ 已恢复,`is_develop: false` |
|
||||
| `app/admin/controller/Plugins.php` | 权限检查逻辑被修改 | ✅ 已恢复 |
|
||||
| `config/shopxo.php` | `is_develop: false` | ✅ 已恢复 |
|
||||
| `public/core.php` | 未知修改 | ✅ 已恢复 |
|
||||
| `app/service/AdminPowerService.php` | 未知修改 | ✅ 已恢复 |
|
||||
| `app/service/PluginsService.php` | 未知修改 | ✅ 已恢复 |
|
||||
| `adminwatekc.php` 等调试脚本 | 潜在后台入口暴露 | ✅ 已删除 |
|
||||
| `app/plugins/vr_ticket/` | untracked 插件目录 | ⚠️ 未存在于 worktree(需从 Docker volume 重新获取) |
|
||||
|
||||
---
|
||||
|
||||
## SecurityEngineer 评估
|
||||
|
||||
### Plan A — Git 清理(推荐)
|
||||
```
|
||||
git checkout HEAD -- [files]
|
||||
```
|
||||
|
||||
**优势:**
|
||||
- 原子性恢复,无残留风险
|
||||
- `is_develop: false` 恢复生产配置
|
||||
- 权限检查逻辑恢复原始状态
|
||||
- 调试文件(`adminwatekc.php` 等)已确认不存在
|
||||
|
||||
**安全确认(基于当前 git status):**
|
||||
1. ✅ `is_develop: false` — 不泄露 stack trace / 配置信息
|
||||
2. ✅ 无 `file_put_contents('/tmp/...')` debug 日志残留
|
||||
3. ✅ 权限检查逻辑已恢复原始代码
|
||||
4. ✅ 调试脚本已清理
|
||||
5. ✅ `admin.php` / `public/admin.php` 已恢复原始入口
|
||||
|
||||
**潜在残留风险:**
|
||||
- `app/plugins/vr_ticket/` 插件目录不在 worktree 中(untracked 且不存在),需要从 Docker 重新获取
|
||||
- `/tmp/` 目录可能残留旧的 debug 日志文件(`isPower_debug.log`, `plugins_debug.log`, `aipower_debug.log`),但不暴露于 Web 路径
|
||||
|
||||
**结论:Plan A 已基本完成,当前状态安全。**
|
||||
|
||||
### Plan B — 重新 clone
|
||||
```
|
||||
git clone → 重新应用 → docker start
|
||||
```
|
||||
|
||||
**安全劣势:**
|
||||
- 重新 clone 会丢失当前已确认的安全状态
|
||||
- 重新应用 Goods.php 那1行修改时可能引入新的人为错误
|
||||
- 多一步操作 = 多一个出错机会
|
||||
- vr_ticket 插件目录仍需从 Docker volume 获取
|
||||
|
||||
**结论:Plan B 在安全层面无额外收益,反而增加操作风险。**
|
||||
|
||||
### vr_ticket 插件风险评估
|
||||
- 该插件已在 MySQL DB 中启用(`is_enable=1`),但插件代码不在 worktree
|
||||
- 插件代码如需重新部署,需要从 Docker volume 提取
|
||||
- **风险**:如直接删除 Docker volume 中的插件目录但 DB 仍启用,可能导致 ShopXO 运行错误
|
||||
|
||||
---
|
||||
|
||||
## 待完成任务
|
||||
|
||||
- [x] 确认 debug 代码已清理(✅ 已确认 git status 干净)
|
||||
- [ ] **高优先级**:从 Docker volume 提取 vr_ticket 插件代码并纳入 version control 或明确记录其来源
|
||||
- [ ] **建议**:清理 `/tmp/` 下的 debug 日志(`isPower_debug.log`, `plugins_debug.log`, `aipower_debug.log`)
|
||||
- [ ] **建议**:Docker 重启后验证 ShopXO 正常运行(vr_ticket 插件 DB 启用但代码缺失状态)
|
||||
|
||||
---
|
||||
|
||||
## 依赖关系
|
||||
|
||||
| 任务 | 依赖 |
|
||||
|------|------|
|
||||
| vr_ticket 插件代码提取 | 需要 DevOps 从 Docker volume 获取 |
|
||||
| Docker 重启验证 | DevOps 执行 |
|
||||
| Goods.php 修改确认 | BackendArchitect 确认 |
|
||||
|
||||
---
|
||||
|
||||
## 阶段
|
||||
|
||||
- **Phase 1: Draft** — 完成 ✅(本 round 完成风险评估)
|
||||
- **Phase 2: Review** — 待其他 member review
|
||||
- **Phase 3: Finalize** — 待执行 vr_ticket 提取 + Docker 重启验证
|
||||
|
||||
---
|
||||
|
||||
## 建议行动
|
||||
|
||||
1. **立即确认当前状态安全** — Plan A 已完成,无需额外清理
|
||||
2. **提取 vr_ticket 插件代码** — 从 Docker volume 提取到 worktree 或其他安全位置
|
||||
3. **清理残留日志** — `rm -f /tmp/isPower_debug.log /tmp/plugins_debug.log /tmp/aipower_debug.log`
|
||||
4. **Docker 重启** — `docker stop shopxo-web shopxo-php && docker start shopxo-web shopxo-php`
|
||||
5. **验证 ShopXO 运行** — 检查 vr_ticket 插件在无代码状态下的行为
|
||||
|
||||
---
|
||||
|
||||
## Claim 状态
|
||||
|
||||
- `[Done: SecurityEngineer]` — 安全风险评估完成
|
||||
- `[Claimed: DevOps]` — Docker 重启操作(待分配)
|
||||
- `[Claimed: DevOps]` — vr_ticket 插件提取(待分配)
|
||||
Loading…
Reference in New Issue