From 53febbbf91aeb5df6ba86c709dd4343482f7a7f4 Mon Sep 17 00:00:00 2001 From: Nelson <1475262689@qq.com> Date: Thu, 9 Jul 2026 16:38:35 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E8=AE=B0=E5=BD=95=E5=90=8E=E5=8F=B0?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E4=B8=8A=E7=BA=BF=E5=AE=89=E5=85=A8=E8=A6=81?= =?UTF-8?q?=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ai_knowledge_base_v2/apps/admin-web/README.md | 4 +-- .../deployment/RELEASE_CHECKLIST.md | 3 +- ...026-07-09-admin-login-production-safety.md | 30 +++++++++++++++++++ 3 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 ai_knowledge_base_v2/development_records/2026-07-09-admin-login-production-safety.md diff --git a/ai_knowledge_base_v2/apps/admin-web/README.md b/ai_knowledge_base_v2/apps/admin-web/README.md index 5099599..9b5fa5a 100644 --- a/ai_knowledge_base_v2/apps/admin-web/README.md +++ b/ai_knowledge_base_v2/apps/admin-web/README.md @@ -21,7 +21,7 @@ http://127.0.0.1:8080/login /api ``` -## 默认管理员 +## 管理员初始化 开发阶段后端会在首次管理员登录时自动创建默认管理员: @@ -30,4 +30,4 @@ http://127.0.0.1:8080/login 密码:admin123456 ``` -生产环境必须通过环境变量修改默认密码。 +管理后台登录页不会预填账号密码。生产环境必须通过环境变量配置安全的首个管理员账号密码,不能使用开发默认密码。 diff --git a/ai_knowledge_base_v2/deployment/RELEASE_CHECKLIST.md b/ai_knowledge_base_v2/deployment/RELEASE_CHECKLIST.md index 4b49b87..053b095 100644 --- a/ai_knowledge_base_v2/deployment/RELEASE_CHECKLIST.md +++ b/ai_knowledge_base_v2/deployment/RELEASE_CHECKLIST.md @@ -5,7 +5,8 @@ - [ ] 已确认当前 Git commit。 - [ ] 已执行 `./scripts/phase6_verify.sh`。 - [ ] 已备份 MySQL 数据库。 -- [ ] 已替换开发默认管理员密码。 +- [ ] 已确认管理后台登录页没有预填账号密码。 +- [ ] 已配置生产环境 `BOOTSTRAP_ADMIN_USERNAME` 和安全的 `BOOTSTRAP_ADMIN_PASSWORD`,且密码不是 `admin123456`。 - [ ] 已替换 `JWT_SECRET_KEY`。 - [ ] 已确认飞书检索配置。 - [ ] 已确认模型配置和额度策略。 diff --git a/ai_knowledge_base_v2/development_records/2026-07-09-admin-login-production-safety.md b/ai_knowledge_base_v2/development_records/2026-07-09-admin-login-production-safety.md new file mode 100644 index 0000000..1b749d2 --- /dev/null +++ b/ai_knowledge_base_v2/development_records/2026-07-09-admin-login-production-safety.md @@ -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` 时,后端拒绝自动创建首个管理员。 +- 发布检查清单明确要求生产环境替换管理员初始化账号密码。