docs: 记录后台登录上线安全要求

This commit is contained in:
2026-07-09 16:38:35 +08:00
parent 7587da6d18
commit 53febbbf91
3 changed files with 34 additions and 3 deletions

View File

@@ -21,7 +21,7 @@ http://127.0.0.1:8080/login
/api /api
``` ```
## 默认管理员 ## 管理员初始化
开发阶段后端会在首次管理员登录时自动创建默认管理员: 开发阶段后端会在首次管理员登录时自动创建默认管理员:
@@ -30,4 +30,4 @@ http://127.0.0.1:8080/login
密码admin123456 密码admin123456
``` ```
生产环境必须通过环境变量修改默认密码。 管理后台登录页不会预填账号密码。生产环境必须通过环境变量配置安全的首个管理员账号密码,不能使用开发默认密码。

View File

@@ -5,7 +5,8 @@
- [ ] 已确认当前 Git commit。 - [ ] 已确认当前 Git commit。
- [ ] 已执行 `./scripts/phase6_verify.sh` - [ ] 已执行 `./scripts/phase6_verify.sh`
- [ ] 已备份 MySQL 数据库。 - [ ] 已备份 MySQL 数据库。
- [ ]替换开发默认管理员密码。 - [ ]确认管理后台登录页没有预填账号密码。
- [ ] 已配置生产环境 `BOOTSTRAP_ADMIN_USERNAME` 和安全的 `BOOTSTRAP_ADMIN_PASSWORD`,且密码不是 `admin123456`
- [ ] 已替换 `JWT_SECRET_KEY` - [ ] 已替换 `JWT_SECRET_KEY`
- [ ] 已确认飞书检索配置。 - [ ] 已确认飞书检索配置。
- [ ] 已确认模型配置和额度策略。 - [ ] 已确认模型配置和额度策略。

View File

@@ -0,0 +1,30 @@
# 管理后台登录页上线安全修正
日期2026-07-09
## 需求背景
管理后台准备正式部署上线,登录页不能默认填入管理员账号和密码。账号密码预填适合开发调试,但上线后会造成明显安全风险,也会让访问者直接看到默认口令线索。
## 本次目标
1. 管理后台登录页用户名、密码输入框默认置空。
2. 文档不再把开发默认账号密码作为正式部署可直接使用的登录信息。
3. 后端首个管理员自动初始化增加生产环境保护,避免生产环境仍使用 `admin/admin123456` 这类弱默认口令。
4. 本地开发仍保留可配置的初始化能力,降低开发和测试环境启动成本。
## 设计决策
- 前端登录表单只保留占位提示,不预填任何账号密码。
- 开发环境可以通过环境变量继续指定首个管理员初始化账号。
- 生产环境如果尚未创建管理员,必须显式配置安全的 `BOOTSTRAP_ADMIN_USERNAME``BOOTSTRAP_ADMIN_PASSWORD`
- 生产环境不允许使用 `admin123456` 作为首个管理员初始化密码。
- 管理员初始化只在系统没有任何管理员账号时触发,已有管理员数据不受影响。
## 验收标准
- 访问管理后台登录页时,账号和密码输入框为空。
- 管理后台前端构建通过。
- 后端代码编译检查通过。
- `APP_ENV=production``BOOTSTRAP_ADMIN_PASSWORD=admin123456` 时,后端拒绝自动创建首个管理员。
- 发布检查清单明确要求生产环境替换管理员初始化账号密码。