vr-shopxo-plugin/plan.md

4.6 KiB
Raw Blame History

vr-shopxo-plugin Phase 2 — 后台管理开发计划

概述

Phase 2 目标:完成后台管理页面开发,涵盖座位模板管理、电子票管理、核销员管理、核销记录查询,以及 Admin 控制器鉴权修复。


安全研究方向SecurityEngineer

R1: Admin 控制器鉴权风险

背景Council 安全审议发现 P1 问题 —— Admin 控制器缺少统一鉴权机制Phase 2 所有后台页面均受影响。

Key Questions

  • ShopXO 后台 admin 控制器统一鉴权入口在哪里?AdminBaseController 或中间件?
  • Phase 2 新增的 Base 控制器(app/common.php 的 Base 类)是否已正确调用鉴权?
  • 各子控制器SeatTemplate / Ticket / Verifier是否有遗漏的 public 方法暴露未授权访问?
  • 鉴权失败后的跳转逻辑是否正确?是否存在认证绕过风险?
  • 后台操作是否需要二次验证(如删除、核销等敏感操作)?

优先级P0


R2: SQL 注入风险评估

背景:电子票导出、核销记录查询等涉及复杂 SQL必须防范注入。

Key Questions

  • ShopXO 原生查询构造器Db::table / Db::name的参数绑定机制是否覆盖所有输入点
  • 日期范围查询、模糊搜索等动态构造场景是否存在拼接风险?
  • IN() 子句的数组参数是否经过安全处理?
  • 关联查询join中是否有注入向量
  • 是否有 ORM 之外的原始 SQL 执行需要审查?

优先级P1


R3: XSS / CSRF 风险

背景:后台管理页面输出到管理端,但仍需防范存储型 XSS 和 CSRF。

Key Questions

  • 后台页面渲染时是否统一使用 htmlspecialchars 或框架转义?
  • 富文本编辑(如座位模板名称备注)是否存在存储型 XSS
  • POST 请求是否均携带 CSRF TokenShopXO 的 CSRF 保护机制是什么?
  • JSON API 响应是否可能携带恶意脚本?
  • 删除/核销等关键操作是否有 CSRF Token 保护?

优先级P1


R4: 敏感操作审计日志

背景:核销操作、票务导出等属于高敏感操作,必须可追溯。

Key Questions

  • 是否需要新建 vr_audit_log 表记录关键操作?
  • 核销记录是否需要记录操作人 IP、UA、设备指纹
  • 导出操作是否需要记录?谁、何时、导出内容摘要?
  • 审计日志是否需要防篡改设计(如 hash chain 或 append-only 表)?
  • ShopXO 是否有现有审计日志机制可以复用?

优先级P2


R5: 水平越权风险IDOR

背景:核销员管理、电子票详情等场景存在横向越权风险。

Key Questions

  • 核销员详情/编辑接口是否校验当前用户所属机构/场馆?
  • 电子票详情接口是否校验持票人身份?
  • 核销记录查询是否仅返回当前核销员/机构的记录?
  • 删除/编辑操作是否有归属校验owner check
  • 是否有测试用例覆盖常见的 IDOR 攻击向量?

优先级P1


任务清单

  • Task S1 — 审查 ShopXO 后台鉴权机制,确认 Phase 2 Base 控制器鉴权覆盖完整性 [Pending]
  • Task S2 — SQL 注入风险审计,覆盖所有 Phase 2 数据查询 [Pending]
  • Task S3 — XSS / CSRF 防护检查 [Pending]
  • Task S4 — 敏感操作审计日志设计 [Pending]
  • Task S5 — IDOR / 水平越权测试用例编写 [Pending]

阶段划分

阶段 内容 负责
Draft 资料收集、研究方向确认 所有成员
Review 代码实现审查、安全评审 SecurityEngineer + Council
Finalize 合并到 main、文档整理 所有成员

Agent 任务分配

Agent 主要任务
BackendArchitect API 设计、权限模型、数据库查询
SecurityEngineer Admin 鉴权、注入/XSS、审计、IDOR
FrontendDev UI 框架选型、ShopXO admin 风格适配

依赖关系

  • Task S1鉴权审查需在 BackendArchitect 完成 API 设计初稿后进行交叉评审
  • Task S2SQL 审计)可与 BackendArchitect 的数据库设计并行
  • Task S4审计日志依赖最终的数据模型设计

讨论结论

本轮为 Round 1 纯讨论,所有成员完成研究方向确认后,进入 Round 2 执行阶段。

SecurityEngineer 立场研究方向已明确5 个方向覆盖鉴权、注入、XSS/CSRF、审计日志、IDOR优先级合理。建议进入执行阶段。