|
|
@@ -2681,4 +2681,4 @@ cd /sc-data/cfc && git diff --name-only HEAD~14 HEAD | grep -E "chat\.vue|schema
|
|
|
22. 任务 5 步骤 5 的安全性依据「`approvePlan` 无任何页面引用」**不准确**:`cfc-frontend/pages/health/health-plan-summary.vue:272` 确有 `import { ... approvePlan }`。但全仓检索 `approvePlan(` **无任何调用点**(死导入),故改返回类型确实不破坏前端。正确依据是「无调用」而非「无引用」。
|
|
|
23. 任务 6 `resolvePlan` 的注释「用反查出的真实 familyId 再校验一次,防止路径与库内不一致绕过」**事实错误**:`getPlanForFamily(planId, familyId)` 本身已按 familyId 过滤,`plan.getFamilyId()` 必然等于上一行已通过 `checkFamilyAccess` 校验的 `familyId`,因此 recheck **永不拒绝任何请求**。真正的 IDOR 防线是第一道 `checkFamilyAccess` + `getPlanForFamily` 返回 null 即 403。recheck 调用予以保留(纵深防御、零成本),但注释必须改为「兜底重复校验,勿依赖它拦截路径不一致」,防止后人误判此处存在真实防护而在其他端点放弃校验。
|
|
|
24. 任务 7 的 RED 步骤(步骤 3)**排在 Service 创建(步骤 1)之后**,故其预期的 `cannot find symbol: class GuideFamilyQueryService` 不可能出现——与任务 5 缺陷 21 同型。正确顺序:先写 `GuideFamilyQueryServiceTest` → 确认 RED(`cannot find symbol`,实测报错于 import 行与字段声明行)→ 再建 Service。
|
|
|
-25. 任务 7 步骤 7 的路由查重命令**会误报**:`grep -oP '@PostMapping\("\K[^"]*' | sort | uniq -d` 只比较方法级字面量、**忽略类级 `@RequestMapping` 前缀**,因此 `/create`、`/delete`、`/detail`、`/invite-code/generate`、`/list`、`/my`、`/stats`、`/update` 全被报成重复,而它们分属不同控制器、完整路径并不相同。有效查重必须把类级前缀与方法级字面量拼接后按 `METHOD+完整路径` 比较;按此归一化校验,全仓 1688 条映射**零重复**。
|
|
|
+25. 任务 7 步骤 7 的路由查重命令**会误报**:`grep -oP '@PostMapping\("\K[^"]*' | sort | uniq -d` 只比较方法级字面量、**忽略类级 `@RequestMapping` 前缀**,因此 `/create`、`/delete`、`/detail`、`/invite-code/generate`、`/list`、`/my`、`/stats`、`/update` 全被报成重复,而它们分属不同控制器、完整路径并不相同。有效查重必须把类级前缀与方法级字面量拼接后按 `METHOD+完整路径` 比较;按此归一化校验,全仓 1688 条映射**零重复**。**任务 8 步骤 4 复用了同一条错误命令**,同样应以归一化脚本替代。
|