vr-shopxo-plugin/plan.md

3.0 KiB
Raw Blame History

plan.md — backend-reviewer Round 1

角色

🔐 backend-reviewer:数据库与后端安全专家


文档评审结论docs/01_SHOPXO_TECHNICAL_RESEARCH.md

SQL 设计部分

检查项 结论 说明
vr_tickets 表 DDL 缺失 文档中无任何 CREATE TABLE 语句
vr_events 表 DDL 缺失 同上
vr_sessions 表 DDL 缺失 同上
vr_seats / vr_orders 表 缺失 同上
ShopXO 原生表sxo_*)分析 充分 充分覆盖 sxo_order / sxo_goods_spec_base 等核心表
索引策略 ⚠️ 需补充 文档未提及 vr 插件表索引设计
外键约束与级联策略 ⚠️ 需补充 未覆盖

安全审查部分

检查项 结论 说明
SQL 注入防御 通过 使用 ThinkPHP Db 类自动绑定参数,未发现拼接 SQL
BuyService 原子扣库存 通过 WHERE inventory >= N + dec() 原子操作,事务回滚机制安全
QR 码生成逻辑 ⚠️ 需补充 base64 编码方式安全但未分析QR payload 是否含 PII、暴力枚举风险
核销码可预测性 ⚠️ 未分析 sxo_order_extraction_code 的 code 字段生成算法未知
订单扩展字段安全 ⚠️ 未分析 extension_data JSON 存储需防注入
权限控制 ⚠️ 未覆盖 核销 API 的 admin 权限校验链未验证

任务清单

  • Task-1: 定义 vr_events场次表、vr_sessions座位表、vr_tickets票券表、vr_orders票务订单表完整 DDL含主键/索引/外键
    • [Claimed: council/backend-reviewer]
  • Task-2: 分析 BuyService OrderInsertHandle 原子扣库存逻辑,输出安全审查报告
    • [Claimed: council/backend-reviewer]
  • Task-3: QR 码生成逻辑注入风险分析payload 构造 + 暴力枚举防护)
    • [Claimed: council/backend-reviewer]
  • Task-4: 核销 API 权限链审查admin 端鉴权路径)
    • [Claimed: council/backend-reviewer]
  • Task-5: 将审查结论写入 reviews/backend-reviewer-on-docs.md
    • [Claimed: council/backend-reviewer]

执行计划

Phase 1 — DraftRound 2

  1. 从 shopxo-evaluator worktree 读取 BuyService.php 源码OrderInsertHandle 部分)
  2. 读取 sxo_order_extraction_code 生成逻辑
  3. 读取核销 API admin 鉴权逻辑
  4. 起草 vr_* 表 DDL 初稿

Phase 2 — ReviewRound 3

  1. 合并 arch-reviewer 的 ARCHITECTURE.md 审查意见(若与数据库设计交叉)
  2. 完整 review 所有发现,写入 reviews/

Phase 3 — FinalizeRound 4

  1. 将最终 DDL + 安全报告 merge 入 main
  2. 投票

依赖

  • arch-reviewerARCHITECTURE.md 中若有数据库层设计,需同步
  • ticket-reviewer核销系统设计文档中若定义了表结构需对齐
  • 其他 round 2 执行,无跨 Agent 阻塞依赖

投票

[CONSENSUS: NO] — 文档缺少 vr_* 插件表 DDL 定义,安全审查不完整,不能开始编码。需先完成表结构设计和安全评审。