docs: 记录后台登录上线安全要求
This commit is contained in:
@@ -21,7 +21,7 @@ http://127.0.0.1:8080/login
|
||||
/api
|
||||
```
|
||||
|
||||
## 默认管理员
|
||||
## 管理员初始化
|
||||
|
||||
开发阶段后端会在首次管理员登录时自动创建默认管理员:
|
||||
|
||||
@@ -30,4 +30,4 @@ http://127.0.0.1:8080/login
|
||||
密码:admin123456
|
||||
```
|
||||
|
||||
生产环境必须通过环境变量修改默认密码。
|
||||
管理后台登录页不会预填账号密码。生产环境必须通过环境变量配置安全的首个管理员账号密码,不能使用开发默认密码。
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
- [ ] 已确认当前 Git commit。
|
||||
- [ ] 已执行 `./scripts/phase6_verify.sh`。
|
||||
- [ ] 已备份 MySQL 数据库。
|
||||
- [ ] 已替换开发默认管理员密码。
|
||||
- [ ] 已确认管理后台登录页没有预填账号密码。
|
||||
- [ ] 已配置生产环境 `BOOTSTRAP_ADMIN_USERNAME` 和安全的 `BOOTSTRAP_ADMIN_PASSWORD`,且密码不是 `admin123456`。
|
||||
- [ ] 已替换 `JWT_SECRET_KEY`。
|
||||
- [ ] 已确认飞书检索配置。
|
||||
- [ ] 已确认模型配置和额度策略。
|
||||
|
||||
@@ -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` 时,后端拒绝自动创建首个管理员。
|
||||
- 发布检查清单明确要求生产环境替换管理员初始化账号密码。
|
||||
Reference in New Issue
Block a user