hl-api-changelog/changelogs-v2-mp/2026-06/22_售后工单mp端归属校验加固_小程序.md

32 行
1.9 KiB
Markdown

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

# 【修正·小程序】售后工单 mp 端接口加归属校验(防横向越权)
> 模块order-v3 售后工单aftersale小程序端
> 类型:安全加固(每日审查驱动,新模块上线前修正)
> 影响端点:`/v3/mp/aftersale/ticket/**`(我的工单列表 / 详情 / 撤回)
> 关联:售后工单中心 PR1-5#4162/#4165/#4168/#4173/#4185的每日审查修正
> 测试服已部署验证9443 实测端点 200
## ⚠️ 关键说明
售后工单 mp 端三个用户入口此前缺少归属校验,任意登录用户传他人 `ticketId`/`orderId` 即可读取或撤回他人工单(横向越权 IDOR。本次加固**经订单归属校验当前用户是否为下单人**,非本人操作返回错误码 **586014TICKET_NOT_OWN**
正常业务流程下,小程序用户只操作自己订单的售后工单,**不会触发**该错误;前端无需改动,仅需对 586014 做兜底提示(如「无权访问该工单」)。
## 1. 受影响端点与行为
| 端点 | 修正 |
|------|------|
| `GET /v3/mp/aftersale/ticket/my`(我的工单列表) | 新增按当前用户校验 `orderId` 归属;端点入参不变,仅服务端加校验 |
| `GET /v3/mp/aftersale/ticket/{id}`(工单详情) | 校验工单所属订单归属当前用户,非本人抛 586014 |
| `POST /v3/mp/aftersale/ticket/{id}/withdraw`(撤回) | 同上归属校验,非本人不可撤回(且不再触发他人 OA 审批撤销) |
## 2. 附带修正:撤回工单不再消失
撤回WITHDRAWN此前被误当软删处理,导致撤回后的工单在「我的工单」列表/详情中**永久不可见**。本次修正后,**撤回是可见终态**,撤回的工单仍可在列表与详情中查看(状态显示「已撤回」)。
## 3. 错误码
| code | 含义 |
|------|------|
| 586014 | 无权操作该售后工单(非本人订单)|