# 🔴 安全热修：小程序相册接口横向越权(IDOR)修复 — 小程序

> 变更类型：安全修复（后端归属校验加固，**正常使用无影响**，无契约变更）
> 端类型：小程序（相册）
> 日期：2026-06-17
> 服务：hl-order-service-v2（相册域）
> PR：https://git.1814.love:8443/wx/HL/pulls/3911

---

## 说明

`api-contract-audit` 审计小程序 BFF 时发现：相册的 4 个接口存在**横向越权(IDOR)**——后端收到当前用户 userId 后未做归属校验，任意登录用户改 URL 里的 orderId/folderId/albumFileId 即可读取/操作他人订单的相册。本次已修复：后端强制校验"相册所属订单归属当前登录用户"，越权一律返回"不存在"。

涉及接口（小程序相册）：
- 订单文件夹列表、文件夹文件列表、文件下载地址获取、文件夹公开授权（写）。

## 前端影响：无需改动

- **正常使用完全不受影响**：用户访问自己订单的相册照常工作。
- 仅"访问他人订单相册"这种越权请求会被拒（返回资源不存在）——前端正常逻辑不会触发。
- 接口路径、入参、返回结构均未变。

> 如果前端有任何调试/测试代码用了非当前用户的 orderId/folderId 访问相册，请改为只访问当前用户自己的资源（之前能拿到是 bug，现已封堵）。

## 校验

| 项目 | 信息 |
|---|---|
| PR | https://git.1814.love:8443/wx/HL/pulls/3911（squash 合并 dev-v3，via api-contract-audit workflow） |
| 部署 | 已部署测试服，order-v2 双实例健康（滚动重启 uptime 刷新） |
| 测试 | 相册模块单测全绿（新增越权拒绝反例：非本人订单/null-userId/订单缺失 + happy path + 防穿透 verify） |
| 后端负责人 | wx |
