vr-shopxo-source/plan.md

53 lines
2.7 KiB
Markdown
Raw Normal View History

# ShopXO 评测环境清理计划 — Council Round 3
## 状态:✅ 清理完成Docker 验证待执行
**分支同步**SecurityEngineer branch 已 fast-forward merge master (`9620524`),与 shopxo-src worktree 同步。
### 清理结果
所有安全风险已清理worktree 已恢复至干净状态:
| 文件 | 原风险 | 执行结果 |
|------|--------|---------|
| `app/admin/controller/Common.php` | debug 日志 | ✅ 已 checkout 恢复 |
| `app/admin/controller/Plugins.php` | debug 日志 + 权限逻辑重写 | ✅ 已 checkout 恢复 |
| `app/common.php` | debug 日志 | ✅ 已 checkout 恢复 |
| `app/service/AdminPowerService.php` | admin_id==1 强制刷新 | ✅ 已 checkout 恢复 |
| `app/service/PluginsService.php` | mode change | ✅ 已 checkout 恢复 |
| `config/shopxo.php` | `is_develop: true` | ✅ 已 checkout 恢复(`is_develop: false` |
| `public/core.php` | 末尾换行符 | ✅ 已 checkout 恢复 |
| `adminwatekc.php` | 后台入口副本 | ✅ 已删除 |
| `debug_power.php` | 调试脚本 | ✅ 已删除 |
| `test_admin.php` | 调试脚本 | ✅ 已删除 |
| `public/adminwatekc.php` | 后台入口副本 | ✅ 已删除 |
| `public/test_admin.php` | 调试脚本 | ✅ 已删除 |
| `app/admin/view/default/plugins_admin/` | 调试视图目录 | ✅ 已删除 |
| `app/admin/view/default/pluginsadmin/` | 调试视图目录 | ✅ 已 checkout 恢复(原始 ShopXO 文件) |
| `app/plugins/vr_ticket/` | 插件代码 | ✅ 已 commit15 files, 652433a |
**最终 git status**: 仅 `?? .worktrees/` 未追踪(框架目录,无需处理)
### 安全风险清理确认
-**`is_develop: false`** — 不再泄露 stack trace / 配置信息
-**`file_put_contents()` debug 日志** — 三处 debug 日志已清除
-**权限检查逻辑已恢复** — Plugins.php 和 AdminPowerService.php 原始代码
-**调试脚本已删除** — 无后台入口副本或调试脚本残留
-**vr_ticket 插件已 commit** — 插件代码现在受版本控制
### 剩余任务
- [x] **[Done: council/SecurityEngineer]** Round 1-2: 安全清理 + vr_ticket commit
- [x] **[Done: council/SecurityEngineer]** Round 3: 分支同步 master (`9620524`)
- [ ] **[Pending: DevOps]** Docker 重启验证(`docker stop/start shopxo-web shopxo-php`
- [ ] **[Pending: DevOps]** OPcache 清除(`docker exec shopxo-php php -r "opcache_reset();"`
- [ ] **[Pending: DevOps]** ShopXO 正常运行验证vr_ticket 插件 DB 启用状态,端口 10000 HTTP 200
### 备份状态
- ✅ vr_ticket 插件:`/tmp/vr_ticket_backup/`(备用)
- ✅ vr_ticket 插件:已 commit `652433a`(主副本)
- ✅ Goods.php`4747d92`(无需处理)
- ✅ DB完全隔离无需备份