fix version 1
This commit is contained in:
19
docs/cms.md
19
docs/cms.md
@@ -215,3 +215,22 @@ flowchart TD
|
||||
10. **补单测(C15)**:为 `AddComment`(非 mall_staff 用户)、`Search`(大 page_size)、`DeleteComment`(父带子)、`IncrPostLike`(重复调用)各写一条边界用例,覆盖本次发现的高危问题。
|
||||
|
||||
> 本报告只列出与现有实现直接相关的修复项,不引入统一框架、DTO/VO 层、DDD/CQRS 等额外抽象。所有结论均附 `文件:行号` 证据;未发现证据处已标注【信息不足】或明确为推断。
|
||||
|
||||
## 9. 整改记录(2026-09-22)
|
||||
|
||||
> 本节记录按本报告结论执行的代码整改。整改遵循**最小修正**原则:未引入新框架、抽象层、DTO/VO、事件总线,未拆分服务边界,**未修改任何 `proto/*.proto` 与生成的 `pb/*.go`**;新增/修改注释均为中文;口令类摘要统一使用 bcrypt(验证码等短时效一次性凭证仍按原有 Redis 明文比对链路存储)。校验方式:`GOWORK=off go build ./...` + `GOWORK=off go vet ./...` + `gofmt -l`(仓库根 workspace 模式存在 genproto 拆包的 ambiguous import,属本机既有问题)。
|
||||
|
||||
| 编号 | 级别 | 问题 | 处理结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| C1 | 高 | 文章/评论 增/删/改 不校验归属(越权) | 已修复:`post` 系列(文章与评论,模型含 `AuthorIdentity`/`OwnerIdentity`)按 `auth.Identity` 限定,非作者/非归属者返回 `ErrPermissionDenied`。**`pages` 系列(`CmsPages` 单页文章)当前模型只有 `types.Std_IICUDS` + 站点/内容字段,没有任何作者或归属列**,在现有表结构下无法判定归属——需要新增归属列才能实施,属**契约/表结构限制**,本轮未擅自改表 |
|
||||
| C2 | 高 | `AddComment` 未命中 `mall_staff` 时类型断言 panic | 已修复:改为带 `ok` 的安全类型断言并给默认值 |
|
||||
| C3 | 高 | `Search` 无 `page_size` 上限 | 已修复:归一化分页(`page` 下限 1、`page_size` 上限 100) |
|
||||
| C4 | 高 | 删除父评论导致 `comment_hits` 计数不一致 | 已修复:删除时同步修正计数 |
|
||||
| C5 | 高 | `Site` 全系列占位空实现却返回成功 | 已修复:改为显式返回 `codes.Unimplemented`,不再假成功 |
|
||||
| C6 | 高 | 赞/踩无去重且可刷成负数 | 已修复:计数改为条件更新并加下限保护,不再出现负值。**完整去重需要「谁点过」的记录表/字段,属契约外,未做** |
|
||||
|
||||
### 未纳入本轮范围
|
||||
|
||||
报告中「中」「低」级别的项(分页上限、死代码、README 与实现不符、单测缺失、可维护性等)**本轮未处理**;如需继续,按各报告第 8 节「修复建议」的顺序推进即可。
|
||||
|
||||
> 本轮整改未修改任何 `proto/*.proto` 与 `pb/*.go`,因此少数需要新增接口字段才能完整实现的项目(已在处理结果中标注)做了安全降级。
|
||||
|
||||
Reference in New Issue
Block a user