docs: 修正部署说明和防暴力破解策略

- 部署说明移除错误的OSS_STS_ROLE_ARN,短信使用直接AccessKey
- 防暴力破解策略补充独立Key的TTL说明

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
zheng020 2026-05-22 13:17:06 +08:00
parent ef46ec832e
commit 091a3eb5c9

View File

@ -59,8 +59,14 @@ register.vue setNickname.vue
### 2.3 后端流程 ### 2.3 后端流程
``` ```
用户输入手机号 → 发送验证码请求 → 后端生成6位随机码 → 存入Redis60秒有效期 → 调用阿里云SMS API → 返回前端 发送验证码流程:
用户输入验证码 → 验证请求 → 后端从Redis取出比对 → 一致则标记验证成功 → 继续注册流程 用户输入手机号 → 发送验证码请求 → 后端生成6位随机码 → 存入RedisHash结构60秒TTL → 调用阿里云SMS API → 返回前端
验证验证码流程:
用户输入验证码 → 验证请求 → 检查Redis中验证码是否存在 → 比对code字段 → 失败则递增attempts≥3次则删除Key → 验证成功则删除验证码Key并创建verify:register:{mobile}记录300秒TTL → 返回verify_token
注册流程需携带verify_token
前端提交注册信息 → 后端检查verify:register:{mobile}是否存在且匹配 → 不匹配则拒绝 → 匹配则处理注册(创建用户、粉丝档案) → 删除verify:register记录 → 返回注册成功
``` ```
--- ---
@ -206,8 +212,10 @@ TTL: 60 秒
### 7.3 防暴力破解策略 ### 7.3 防暴力破解策略
- **失败计数**:每次验证失败递增 attempts 字段,≥ 3 次后删除 Key要求用户重新获取 - **失败计数**:每次验证失败递增 attempts 字段,≥ 3 次后删除 Key要求用户重新获取
- **发送频率限制**:记录 `sms:limit:{mobile}:hour`,每小时最多发送 10 次,超限返回 429 - **发送频率限制**:每小时最多发送 10 次,超限返回 429
- **IP 维度限流**(可选):记录 `sms:limit:{ip}:hour`,每 IP 每小时最多请求 30 次 - 使用独立 Key `sms:limit:register:{mobile}` 计数String 类型TTL=3600 秒)
- **IP 维度限流**(可选):每 IP 每小时最多请求 30 次
- 使用独立 Key `sms:limit:ip:{ip}` 计数String 类型TTL=3600 秒)
### 7.4 验证后处理 ### 7.4 验证后处理
@ -317,20 +325,15 @@ Content-Type: application/json
## 10. 部署说明 ## 10. 部署说明
1. 在阿里云短信服务控制台创建签名和模板,获取 `SignName``TemplateCode` 1. 在阿里云短信服务控制台创建签名和模板,获取 `SignName``TemplateCode`
2. 在 `deploy/envs/user.env` 中配置阿里云 AccessKey 2. 在 `deploy/envs/user.env` 中配置阿里云短信 AccessKey
```bash ```bash
# 阿里云短信配置 # 阿里云短信配置(直接使用 AccessKey非 STS
SMS_ACCESS_KEY_ID=your_access_key_id SMS_ACCESS_KEY_ID=your_access_key_id
SMS_ACCESS_KEY_SECRET=your_access_key_secret SMS_ACCESS_KEY_SECRET=your_access_key_secret
SMS_SIGN_NAME=TopFans SMS_SIGN_NAME=TopFans
SMS_TEMPLATE_CODE=SMS_xxxxxxx SMS_TEMPLATE_CODE=SMS_xxxxxxx
SMS_REGION=cn-hangzhou SMS_REGION=cn-hangzhou
# 阿里云 OSS 配置(复用同一套凭证)
OSS_ACCESS_KEY_ID=your_access_key_id
OSS_ACCESS_KEY_SECRET=your_access_key_secret
OSS_STS_ROLE_ARN=acs:ram::1387642798143585:role/top-fans-oss-user
``` ```
3. 重启 userService 服务 3. 重启 userService 服务