fix version 1

This commit is contained in:
2026-09-22 21:15:34 +08:00
parent 9f86366638
commit d63d7e8b3a
277 changed files with 9959 additions and 1514 deletions

View File

@@ -169,3 +169,31 @@ flowchart TD
8. **清理**:移除 `cmd/cli` 调试输出、空 `excode/ex.go`、未调用的限流函数(或真正接入);敏感信息勿进 `printer`
> 本报告只列出与现有实现直接相关的修复项,不引入新的分层或抽象封装。
## 9. 整改记录
### 2026-09-22密码哈希统一为 bcrypt对应建议 2、3
| 位置 | 改动 | 说明 |
| --- | --- | --- |
| `internal/logic/forget/reset.go:32-43` | `utils.Md5(in.Password)``bcrypt.GenerateFromPassword(密码+新salt, bcrypt.DefaultCost)`,并在同一条 `Updates` 中同步写入新的 `salt` | 修复 P4重置密码与登录校验`bcrypt.CompareHashAndPassword(密码+sa.Salt)`)恢复一致;同时消除了"未加盐 MD5"与"重置后无法登录"两个问题 |
| `internal/logic/register/do.go:30` | `bcrypt.MinCost``bcrypt.DefaultCost` | 修复 P5cost 4 → 10 |
| `internal/logic/account/set_password.go:35` | `bcrypt.MinCost``bcrypt.DefaultCost` | 修复 P5 |
| `internal/models/query.go:21` | `bcrypt.MinCost``bcrypt.DefaultCost` | 修复 P5`InitData` 仍未被调用) |
验证:`gofmt` 无差异;`GOWORK=off go build ./...``go vet ./internal/...` 均通过。
> 历史 MD5 密码记录无法用 bcrypt 校验,需通过"重置密码"流程迁移(本次改动后重置将写入 bcrypt
### 2026-09-22验证码校验、找回密码票据与 Token 前缀(对应 P1、P2、P3、P6
| 编号 | 级别 | 问题 | 处理结果 |
| --- | --- | --- | --- |
| S1原 P1/P2 | 高 | 验证码登录/快捷登录/注册/找回四条路径均不校验验证码 | 已修复:新增模块内验证码校验函数(`internal/vars/cache.go` 定义 Redis 键前缀常量,与 sender 侧 `/SMS/Code/` + 手机号规则一致),按 Redis 读取比对,**校验成功后删除键(一次性)**;四条路径全部接入 |
| S2原 P3 | 高 | `Forget.Reset` 仅凭 `identity` 即可改任意账号密码 | 已修复:`Forget.Verify` 真实校验 `phone + code` 后写入一次性重置票据Redis带 TTL`Forget.Reset` 先检查票据存在才允许改密,改密成功后立即删除票据(防重放)。未改 proto用现有两步流程实现 |
| H3原 P6 | 高 | Token 缓存键前缀 `/TOKEN/``/token/` 不一致 | 已修复:统一引用 `internal/vars.TokenPrefix` 常量,签发与校验/登出的键完全一致 |
> 本轮未修改 `proto/*.proto` 与 `pb/*.go`。
**遗留(未处理)**P7 KYC 空 stub、P8 验证码接口未接入、P9 日志泄露 PII、P10 事务与错误处理缺失、全模块无测试,以及报告中「中/低」级别的各项。