vr-shopxo-plugin/plan.md

5.3 KiB
Raw Blame History

<<<<<<< HEAD

Council Plan — vr-shopxo-plugin 安全审议

Round 1 — 2026-04-15 Branch: council/SecurityEngineer → main 状态:Draft Phase 完成,进入 Review =======

Council Plan — vr-shopxo-plugin 代码审议

Round 1 — 2026-04-15 Branch: council/FrontendDev → main 状态:Draft Phase

council/FrontendDev


Task Summary

<<<<<<< HEAD 对 vr-shopxo-plugin 票务插件进行完整代码安全审议输出独立评审报告≥500字列出所有发现的问题严重/中等/轻微/建议),给出具体修复建议。仅评论不改代码,变更提交本地 worktree。

对 vr-shopxo-plugin 插件进行全面的代码审议,覆盖插件架构、票务核心、前端页面、数据库 Schema、安全性 5 个维度。仅评论不改代码,输出独立评审报告到 reviews/code-review-FrontendDev.md


Review Scope

1. 插件架构

  • app/plugins/vr_ticket/EventListener.php
  • app/plugins/vr_ticket/plugin.json
  • 生命周期钩子实现、数据库迁移策略、菜单/权限注册

2. 票务核心

  • app/plugins/vr_ticket/service/TicketService.php
  • app/plugins/vr_ticket/service/BaseService.php
  • onOrderPaid() 并发问题、verifyTicket() 核销漏洞、AES QR 加密强度

3. 前端票务详情页

  • app/plugins/vr_ticket/view/goods/ticket_detail.html
  • HTML/CSS/JS 质量、座位图渲染逻辑、观演人表单安全性

4. 数据库 Schema

  • app/plugins/vr_ticket/database/migrations/001_vr_tables.sql
  • 表结构规范、索引合理性、外键关系

5. 安全性审计

  • SQL 注入、XSS、支付回调重放攻击、QR 票防伪造

council/FrontendDev


Task Checklist

<<<<<<< HEAD

  • 1. 插件架构审计EventListener.php / plugin.json
  • 2. 票务核心审计TicketService.php / BaseService.php
  • 3. 前端票务详情页审计ticket_detail.html
  • 4. 数据库 Schema 审计
  • 5. 安全性综合审计SQL注入/XSS/重放攻击/QR伪造
  • 6. 输出评审报告到 reviews/code-review-SecurityEngineer.md
  • 7. 提交 plan.md 到 main

审计发现汇总

编号 严重程度 类别 描述
S-01 🔴 严重 业务逻辑 onOrderPaid 无幂等保护,同一订单可生成多张票
M-01 🟡 中等 业务逻辑 verifyTicket 存在 TOCTOU 竞态条件
M-02 🟡 中等 鉴权 手动核销接口未验证核销员身份
M-03 🟡 中等 数据安全 观演人身份证明文存储
M-04 🟡 中等 前端安全 simple_desc 使用 `
M-05 🟡 中等 加密 QR 加密密钥回退到硬编码默认值
L-01 🟢 轻微 前端安全 data-label 属性可能含未转义数据
L-02 🟢 轻微 数据完整性 AES-CBC 无认证加密
L-03 🟢 轻微 业务逻辑 loadSoldSeats 未实现,存在超卖风险
I-01~04 💡 建议 架构/业务 升级迁移、退款钩子、购买上限、表单校验缺失

=======

  • R1: 评审插件架构 (EventListener.php / plugin.json)
  • R2: 评审票务核心 (TicketService.php / BaseService.php)
  • R3: 评审前端页面 (ticket_detail.html)
  • R4: 评审数据库 Schema (001_vr_tables.sql)
  • R5: 安全性综合审计(注入/XSS/重放/QR伪造
  • R6: 汇总评审报告 (reviews/code-review-FrontendDev.md)

council/FrontendDev


Phase Breakdown

Phase 内容 状态
<<<<<<< HEAD
Draft 各模块代码审计 + 报告撰写 Done
Review 评审其他成员报告 Pending
Finalize 合并到 main投票 Pending

======= | Draft | 各维度代码阅读 + 问题识别 | 完成 | | Review | 输出完整评审报告 | 完成 | | Finalize | 提交报告到 main | 待合并 |


问题发现汇总

严重度 数量 典型问题
🔴 严重 2 购票参数前端计算无验签 / $goods.content|raw XSS
🟡 中等 4 loadSoldSeats 未实现 / CSS 无响应式 / 座位图渲染边界 / JSON输出XSS
🟢 轻微 3 已选座位 UI 无状态管理 / 观演人表单无校验 / 座位映射数据泄露
💡 建议 4 座位字符集ASCII限制 / 座位数无上限 / spec_base_id缺索引 / 地图JSON无长度限制

council/FrontendDev


Claim Status

Task Owner Status
<<<<<<< HEAD
插件架构审计 council/SecurityEngineer [Done]
票务核心审计 council/SecurityEngineer [Done]
前端票务页审计 council/SecurityEngineer [Done]
数据库Schema审计 council/SecurityEngineer [Done]
安全综合审计 council/SecurityEngineer [Done]
输出评审报告 council/SecurityEngineer [Done]

立即修复优先级(上线前必须)

  1. S-01onOrderPaid 添加幂等检查
  2. M-02 — 手动核销接口鉴权
  3. M-04 — 移除 |raw XSS
  4. M-05 — 移除 QR 密钥硬编码回退

[CONSENSUS: NO] — Draft 完成,等待其他成员评审

| R1-R6: 完整评审 | council/FrontendDev | [Done: council/FrontendDev] |


[CONSENSUS: NO] — Round 1 规划完成,待执行审议

council/FrontendDev