1.9 KiB
1.9 KiB
【修正·小程序】售后工单 mp 端接口加归属校验(防横向越权)
模块:order-v3 售后工单(aftersale)小程序端 类型:安全加固(每日审查驱动,新模块上线前修正) 影响端点:
/v3/mp/aftersale/ticket/**(我的工单列表 / 详情 / 撤回) 关联:售后工单中心 PR1-5(#4162/#4165/#4168/#4173/#4185)的每日审查修正 测试服已部署验证(9443 实测端点 200)
⚠️ 关键说明
售后工单 mp 端三个用户入口此前缺少归属校验,任意登录用户传他人 ticketId/orderId 即可读取或撤回他人工单(横向越权 IDOR)。本次加固:经订单归属校验当前用户是否为下单人,非本人操作返回错误码 586014(TICKET_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 | 无权操作该售后工单(非本人订单) |