fix version 1
This commit is contained in:
@@ -177,3 +177,21 @@ flowchart TD
|
||||
13. **清理与补测**:删 `impl.go` 中未使用的 Redis/Etcd/Memory 初始化、`proto/feedback.proto:119-122` 的 `IdentRequest`、`test/rpc/rpc.go`;修正 `test/add.http` 的非法 JSON;为 `Get`/`Modify`/`Delete`/`Remark` 各写 1 条越权用例与 1 条正常用例。
|
||||
|
||||
> 本报告只列出与现有实现直接相关的修复项,不引入新的分层、抽象封装或 DTO/VO 改造。
|
||||
|
||||
## 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,属本机既有问题)。
|
||||
|
||||
| 编号 | 级别 | 问题 | 处理结果 |
|
||||
| --- | --- | --- | --- |
|
||||
| F1 | 高 | `Get`/`Delete`/`Remark` 不解析身份、四接口均无归属校验(IDOR) | 已修复:全部补 `service.ParseMetaCtx` 并按 `passport_id`/`passport_identity` 限定读写,越权返回 `ErrPermissionDenied` |
|
||||
| F2 | 高 | `Get`/`List` 直接返回 `email`/`phone`(PII) | 已修复:非本人/非管理端访问时对 PII 字段做掩码,本人可全量 |
|
||||
| F3 | 高 | `Modify` 把主表 `identity` 改写为随机 UUID | 已修复:改用 `Updates` 正常更新,不再改写 `identity` |
|
||||
| F4 | 高 | `Modify` 附件未赋 `identity` 导致子表唯一键冲突 | 已修复:为每个附件生成 `identity` |
|
||||
| F5 | 高 | 关联被写两遍且无事务,修改报错且数据半更新 | 已修复:合并为一次写入,并用 `impl.DBService.Transaction` 保证主表与附件同成功/同失败 |
|
||||
|
||||
### 未纳入本轮范围
|
||||
|
||||
报告中「中」「低」级别的项(分页上限、死代码、README 与实现不符、单测缺失、可维护性等)**本轮未处理**;如需继续,按各报告第 8 节「修复建议」的顺序推进即可。
|
||||
|
||||
> 本轮整改未修改任何 `proto/*.proto` 与 `pb/*.go`,因此少数需要新增接口字段才能完整实现的项目(已在处理结果中标注)做了安全降级。
|
||||
|
||||
Reference in New Issue
Block a user