vr-shopxo-plugin/plan.md

2.4 KiB
Raw Blame History

Plan — vr-shopxo-plugin 安全评估 + 票务链路审计

版本v1.0 | 日期2026-05-26 | Agentcouncil/SecurityEngineer


Round 1 安全评估任务清单

  • [Done: council/SecurityEngineer] Task 1: 审计购物车→支付→QR票生成链路BuyService → onOrderPaid → issueTicket
  • [Done: council/SecurityEngineer] Task 2: 检查 FOR UPDATE SKIP LOCKED 防超卖实现verifyTicket / issueTicket
  • [Done: council/SecurityEngineer] Task 3: QR签名机制审计HMAC-SHA256、30分钟exp、code字段
  • [Done: council/SecurityEngineer] Task 4: 检查 BaseService QR Secret 配置(硬编码风险)
  • [Done: council/SecurityEngineer] Task 5: 前端 XSS 风险初步评估
  • [Done: council/SecurityEngineer] Task 6: 输出安全评估报告 → docs/council-eval-securityengineer.md

阶段划分

阶段 内容 状态
Round 1 Draft 安全审计 + 评估报告 完成
Round 1 Review 投票 + 报告写入 main 🔄 进行中

安全评估结论摘要

# 问题 严重性 状态
S-1 issueTicket() 并发竞态(无悲观锁) P0 建议 建议加唯一索引 (order_id, seat_info)
S-2 QR Secret 硬编码 fallback P1 需确认生产环境 .env 配置
S-3 FOR UPDATE SKIP LOCKED 概念混淆 P2 防超卖依赖ShopXO原子UPDATE已有效
S-4 onOrderPaid 无事务包装 P2 可接受(有幂等保护)
S-5 前端XSS观演人渲染 P3 需确认渲染方式

无 P0 安全漏洞。支付链路整体安全,建议持续改进。


投票

议题:下一步主攻方向 投票C双线并行


关键文件索引

文件 行号 安全关注点
shopxo/app/plugins/vr_ticket/service/TicketService.php 159-169 issueTicket() 幂等检查(无悲观锁)
shopxo/app/plugins/vr_ticket/service/TicketService.php 252-256 verifyTicket() FOR UPDATE
shopxo/app/plugins/vr_ticket/service/TicketService.php 25-138 onOrderPaid 回调
shopxo/app/plugins/vr_ticket/service/BaseService.php 302-303 QR Secret 硬编码 fallback
shopxo/app/service/BuyService.php 1650-1684 ShopXO 原子条件库存扣减
docs/council-eval-securityengineer.md 完整安全评估报告