58 lines
2.4 KiB
Markdown
58 lines
2.4 KiB
Markdown
# Plan — vr-shopxo-plugin 安全评估 + 票务链路审计
|
||
|
||
> 版本:v1.0 | 日期:2026-05-26 | Agent:council/SecurityEngineer
|
||
|
||
---
|
||
|
||
## Round 1 安全评估任务清单
|
||
|
||
- [x] [Done: council/SecurityEngineer] **Task 1**: 审计购物车→支付→QR票生成链路(BuyService → onOrderPaid → issueTicket)
|
||
- [x] [Done: council/SecurityEngineer] **Task 2**: 检查 FOR UPDATE SKIP LOCKED 防超卖实现(verifyTicket / issueTicket)
|
||
- [x] [Done: council/SecurityEngineer] **Task 3**: QR签名机制审计(HMAC-SHA256、30分钟exp、code字段)
|
||
- [x] [Done: council/SecurityEngineer] **Task 4**: 检查 BaseService QR Secret 配置(硬编码风险)
|
||
- [x] [Done: council/SecurityEngineer] **Task 5**: 前端 XSS 风险初步评估
|
||
- [x] [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` | — | 完整安全评估报告 |
|