vr-shopxo-plugin/plan.md

82 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Plan — 幽灵规格安全审计Ghost Spec Security Audit
> 版本v1.1 | 日期2026-04-20 | Agentcouncil/SecurityEngineer
> 关联任务:场馆删除后编辑商品出现规格重复错误 — 安全视角分析
---
## 任务概述
从安全工程师视角评估"幽灵 spec"问题:
1.`template_id` 指向已删除场馆时后端是否拒绝保存脏数据code -401
2. 幽灵 spec 是否可被恶意利用来注入/覆盖商品规格?
3. 前端 fallback 是否有安全风险?
4. 根因属于 P1拒绝脏数据还是 P2优雅降级
---
## 任务清单
- [x] [Done: council/SecurityEngineer] **Task S1**: 读取 AdminGoodsSaveHandle.php — 安全审计:保存时是否拒绝脏数据
- [x] [Done: council/SecurityEngineer] **Task S2**: 读取 SeatSkuService.php — 幽灵 spec 注入路径分析
- [x] [Done: council/SecurityEngineer] **Task S3**: 读取 AdminGoodsSave.php — ShopXO 入口安全检查
- [x] [Done: council/SecurityEngineer] **Task S4**: 输出安全审计报告 → `reviews/SecurityEngineer-GHOST_SPEC_SECURITY.md`
- [x] [Done: council/SecurityEngineer] **Task S5**: 更新 `reviews/council-ghost-spec-summary.md`
---
## 阶段划分
| 阶段 | 内容 |
|------|------|
| **Draft** | Task S1-S3读取关键文件安全审计 |
| **Review** | Task S4输出安全报告 |
| **Finalize** | Task S5汇总到 summary |
---
## 关键文件SecurityEngineer 专用)
| 文件 | 安全关注点 |
|------|-----------|
| `shopxo/app/plugins/vr_ticket/hook/AdminGoodsSaveHandle.php` | 幽灵 spec 是否阻止保存?是否可以注入? |
| `shopxo/app/plugins/vr_ticket/service/SeatSkuService.php` | GetGoodsViewData fallback 安全风险 |
| `shopxo/app/plugins/vr_ticket/admin/Admin.php` | VenueDelete 硬删除逻辑(关联分析) |
| `shopxo/app/admin/hook/AdminGoodsSave.php` | ShopXO 保存钩子入口安全检查 |
---
## 审计问题清单SecurityEngineer 专用)
1. **S1-Q1**: 当 `template_id` 指向不存在的场馆时,`AdminGoodsSaveHandle` 是否拒绝保存(返回 code -401
2. **S1-Q2**: 幽灵 spec来自已删除场馆的 `spec_base_id_map`)是否可在保存时被注入到 `vr_goods_config`
3. **S1-Q3**: `vr_goods_config` 中若有多个规格项的 `spec_base_id` 相同,是否会触发去重逻辑或安全阻断?
4. **S2-Q1**: `SeatSkuService::GetGoodsViewData` 在模板不存在时如何 fallbackfallback 数据是否可信?
5. **S2-Q2**: `template_snapshot` 字段是否可以携带恶意 payload
6. **S3-Q1**: ShopXO `AdminGoodsSave.php` 入口是否有参数校验?
7. **评估**: 根因属于 P1拒绝脏数据/安全漏洞)还是 P2功能降级
---
## 优先级定义
| 级别 | 含义 |
|------|------|
| **P1** | 安全漏洞脏数据注入、XSS、权限绕过、数据覆盖 |
| **P2** | 功能缺陷:用户体验问题、错误提示不友好 |
| **P3** | 改进建议:代码健壮性优化 |
---
## 依赖
- 依赖 BackendArchitect 的根因分析Task 1-8和 FrontendDev 的前端分析
- 最终汇总由 SecurityEngineer 写入 `reviews/council-ghost-spec-summary.md`
---
## 输出报告
- `reviews/SecurityEngineer-GHOST_SPEC_SECURITY.md` — 详细安全审计报告
- `reviews/council-ghost-spec-summary.md` — 三方汇总报告