vr-shopxo-source/plan.md

4.8 KiB
Raw Blame History

Council Plan — SecurityEngineer Round 1

角色职责

SecurityEngineer — 负责安全风险评估,尤其关注 debug 代码注入、日志文件写入权限、config 泄露等风险点。

当前状态

Git 状态(已确认)

  • Worktree 分支:council/SecurityEngineerHEAD = 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 运行错误

待完成任务

  • 确认 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 插件提取(待分配)