chore(changelog): 撤回误推到 changelogs-v2 的 2 个小程序 changelog(3911/3915);小程序 changelog 改归 changelogs-v2-mp 且暂不推送(wx 2026-06-17)
这个提交包含在:
父节点
228a744dec
当前提交
a8f1e490db
@ -1,33 +0,0 @@
|
|||||||
# 🔴 安全热修:小程序相册接口横向越权(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 |
|
|
||||||
@ -1,85 +0,0 @@
|
|||||||
# 小程序 BFF 接口契约审计修复(金额 String + 字段映射 + 可见性 + 缓存)— 修改接口 — 小程序
|
|
||||||
|
|
||||||
> 变更类型:⚠️ 多项修复(金额类型 / 字段补全 / 可见性收紧 / 缓存行为,多数前端正向受益)
|
|
||||||
> 端类型:小程序(hl-mp-service BFF)
|
|
||||||
> 日期:2026-06-17
|
|
||||||
> 服务:hl-mp-service
|
|
||||||
> PR:https://git.1814.love:8443/wx/HL/pulls/3915
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## ⚠️ 关键说明
|
|
||||||
|
|
||||||
`api-contract-audit` 全量审计小程序 BFF 40 个核心 Controller,对抗复核实锤 100 项契约偏差。mp 是聚合层,本次修复 **mp BFF 自身的 67 处**;另有约 40 项根因在下游服务(订单/用户/资源服务),列在文末「待修清单」,会在后续审计中处理。已合并 dev-v3、部署测试服、双实例健康。
|
|
||||||
|
|
||||||
最影响前端的是第 1 节(金额→字符串)和第 2 节(原本恒 null 的字段现已修复)。
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 1. 金额字段统一为 JSON 字符串
|
|
||||||
|
|
||||||
多个 mp 响应 VO 的金额(BigDecimal)此前输出成 JSON 数字,本次统一改为**字符串**(与平台口径一致)。涉及:退款(退款预览/进度/详情)、发票、订单详情/列表、票务、价格明细(含按人群/优惠/附加费的逐项明细)、保费、推荐产品起价等。
|
|
||||||
|
|
||||||
> 前端处理:相关金额字段一律按**字符串**接收;若做过数字运算需先转数值。非金额(里程/经纬度/评分)不变。
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 2. 原本恒为 null 的字段已修复(前端可正常取值)
|
|
||||||
|
|
||||||
以下字段此前因 BFF 与下游字段名不一致(反序列化失败)或 BFF 未填充而恒为 null,现已修复:
|
|
||||||
|
|
||||||
| 模块 | 字段 |
|
|
||||||
|---|---|
|
|
||||||
| 相册文件 | thumbnailUrl、fileName、fileSize、createdAt |
|
|
||||||
| 相册订单 | coverUrl、fileCount |
|
|
||||||
| 发票详情 | invoiceTitle、taxNumber、createdAt |
|
|
||||||
| 合同 | 状态日志 *Label、出行人证件类型标签 |
|
|
||||||
| 出行人 | race、roomGroupNo(订单出行人)、travelerTypeLabel |
|
|
||||||
| 到达计划 | updateTime |
|
|
||||||
|
|
||||||
> 前端处理:这些字段现在会返回真实值,可直接使用(之前拿到的是 null)。
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 3. 行为收紧(前端需配合)
|
|
||||||
|
|
||||||
### 3.1 下架资源详情不再返回(可见性收紧)
|
|
||||||
景点 / 酒店 / 餐厅 / 活动 详情接口在 BFF 层补了「是否上架」校验,**下架(status=0)的资源详情不再返回**给小程序(之前会原样返回)。前端访问已下架资源详情会得到「不存在/不可见」,请正常处理空态。
|
|
||||||
|
|
||||||
### 3.2 浏览量统计 / 错误不再被缓存
|
|
||||||
- 探索/百科详情的「浏览量+1」此前在缓存命中时不执行(统计失真),现已修复(浏览量正确累加)。
|
|
||||||
- BFF 缓存不再缓存下游降级错误(避免 TTL 内持续返回陈旧错误)。
|
|
||||||
- 前端无感,仅数据更准确。
|
|
||||||
|
|
||||||
### 3.3 定制需求状态字典修正
|
|
||||||
定制(/mp/custom)相关接口的状态字典此前文档值有误,实际枚举为 `PENDING/PROCESSING/REPLIED/CONVERTED/CANCELLED`,请前端按此映射。
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 4. 待修清单(根因在下游服务,本次未修,后续处理)
|
|
||||||
|
|
||||||
以下问题审计已发现,但根因在下游服务,不在本 PR;记录在此供前端知晓(暂仍按现状):
|
|
||||||
|
|
||||||
- **订单服务(order-v2)相关 ~21 项**:部分字段缺失/状态机/错误码等(其中相册 4 个越权 P0 已由 PR #3911 安全热修修复)。
|
|
||||||
- **用户服务相关 ~11 项**:出行人默认删除守卫、token 轮转、资料完善校验、足迹 HOTEL 等 — 将在用户服务审计时在源头修复。
|
|
||||||
- **资源服务相关 ~3 项**:百科推荐排序、足迹等 — 将在资源服务审计时修复。
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 5. 前端 Action 清单
|
|
||||||
|
|
||||||
1. 第 1 节金额字段按字符串解析。
|
|
||||||
2. 第 2 节字段现在有值,可接入使用。
|
|
||||||
3. 下架资源详情做空态处理(第 3.1)。
|
|
||||||
4. 定制状态映射用真实枚举(第 3.3)。
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## 6. 关联
|
|
||||||
|
|
||||||
| 项目 | 信息 |
|
|
||||||
|---|---|
|
|
||||||
| PR | https://git.1814.love:8443/wx/HL/pulls/3915(squash 合并 dev-v3,via api-contract-audit + mp-internal-fix workflow) |
|
|
||||||
| 部署 | 已部署测试服,mp 双实例健康(滚动重启 uptime 刷新);公开端点 /mp/banner/active 等返 code:200 |
|
|
||||||
| 测试 | 963 单测,本次改动 add 0 新失败(另有 3 个 dev-v3 预存红与本次无关,已单独反馈后端) |
|
|
||||||
| 后端负责人 | wx |
|
|
||||||
正在加载...
x
在新工单中引用
屏蔽一个用户