[SEN] 将密码策略简化为仅限制最短6位 #42

Closed
opened 2026-08-13 09:13:16 +08:00 by ila · 3 comments
Owner

当前状态:已完成

用户于 2026-08-14 明确验收通过。

基本信息

  • 类型:需求变更
  • 任务类型:单项目
  • 主项目:Sense
  • 主 agent:主 agent
  • 所属 Epic:#7
  • 所属 MVP / 版本:#8
  • 阶段:身份安全规则调整

依赖与并行

  • 前置工单:#40
  • 是否允许与前置工单并行:是
  • 原因:#40 已实现 6 位最短长度并待验收;本工单在其分支上继续按用户确认降低复杂度,不绕过人工验收。

子项目影响

  • 仅影响:Sense
  • 是否跨项目:否
  • 是否修改共享契约:否
  • write_paths:
    • Sense/server/app/sense/identity/password.go
    • Sense/server/app/sense/identity/password_test.go
    • Sense/ui/src/views/sense/identity/Users.vue
    • docs/03-business-rules-and-glossary.md(Wiki-first)
    • docs/delivery/README.md(Wiki-first)
    • wiki-docs.json
    • docs/task/<本工单归档>.md
  • 本地重建但不提交:Sense/dist/sense-windows-amd64/**

原始需求

  • 来源:用户对话
  • 提出时间:2026-08-13
  • 关键原话或脱敏摘要:指定创建管理员账号并使用用户提供密码(已脱敏);在说明安全影响后确认所有模式仅要求至少 6 位,取消大小写/数字组合并允许密码包含用户名;指令“确认,建工单,做”。

要解决什么

使 Sense 所有模式接受最少 6 位的任意字符密码,包括全小写或包含用户名的密码,从而允许创建用户指定的管理员凭据(已脱敏)。

做什么 / 不做什么

  • 做:后端只保留 Unicode 字符数至少 6 的规则;删除组合和用户名包含校验;同步前端提示;更新测试、Wiki;重新打包并创建 demo 管理员。
  • 不做:不降低 bcrypt 哈希;不创建代码内默认账号;不把账号密码写入仓库、Wiki、工单评论或测试夹具;不修改 Bell。

已确认方案

  • demo 和生产共用规则:密码至少 6 个字符,无字符种类要求,允许包含用户名。
  • 既有密码哈希不迁移;新初始化和新建用户应用新规则。
  • 用户已明确接受相较 #40 进一步降低生产密码安全性的风险。

需求变化记录

日期 变化内容 原因 用户确认
2026-08-13 取消字符组合和用户名包含限制,仅保留至少 6 位 允许简单密码和指定管理员凭据 是,明确包含生产模式

文档影响

  • 更新业务规则与术语
  • 更新管理员交付说明

验收标准

  • 6 位全小写密码通过;5 位密码拒绝。
  • 包含用户名的 8 位密码通过。
  • bootstrap 和创建用户继续使用同一后端规则。
  • 前端只提示至少 6 位,不显示已取消限制。
  • Windows ZIP 重建并用指定管理员完成 demo 初始化和登录。
  • 密码不写入仓库、Wiki、工单或日志。

验证方式

cd Sense\server
go test ./app/sense/identity/... ./...
cd ..\ui
corepack pnpm@9.15.1 lint
cd ..\..
cmd /c Sense\scripts\package-windows.bat

另使用运行时注入的一次性令牌调用 bootstrap 和 login,响应只记录状态码,不记录密码。

风险和回退

风险:允许低复杂度及包含用户名的生产密码会显著增加字典猜测和凭据填充风险;当前未以 MFA 或外部身份提供者补偿。回退:恢复 #40 复杂度和用户名限制并重新打包;既有弱密码需管理员主动重置,代码回退不会自动使其失效。

## 当前状态:已完成 用户于 2026-08-14 明确验收通过。 ## 基本信息 - 类型:需求变更 - 任务类型:单项目 - 主项目:Sense - 主 agent:主 agent - 所属 Epic:#7 - 所属 MVP / 版本:#8 - 阶段:身份安全规则调整 ## 依赖与并行 - 前置工单:#40 - 是否允许与前置工单并行:是 - 原因:#40 已实现 6 位最短长度并待验收;本工单在其分支上继续按用户确认降低复杂度,不绕过人工验收。 ## 子项目影响 - 仅影响:Sense - 是否跨项目:否 - 是否修改共享契约:否 - write_paths: - `Sense/server/app/sense/identity/password.go` - `Sense/server/app/sense/identity/password_test.go` - `Sense/ui/src/views/sense/identity/Users.vue` - `docs/03-business-rules-and-glossary.md`(Wiki-first) - `docs/delivery/README.md`(Wiki-first) - `wiki-docs.json` - `docs/task/<本工单归档>.md` - 本地重建但不提交:`Sense/dist/sense-windows-amd64/**` ## 原始需求 - 来源:用户对话 - 提出时间:2026-08-13 - 关键原话或脱敏摘要:指定创建管理员账号并使用用户提供密码(已脱敏);在说明安全影响后确认所有模式仅要求至少 6 位,取消大小写/数字组合并允许密码包含用户名;指令“确认,建工单,做”。 ## 要解决什么 使 Sense 所有模式接受最少 6 位的任意字符密码,包括全小写或包含用户名的密码,从而允许创建用户指定的管理员凭据(已脱敏)。 ## 做什么 / 不做什么 - 做:后端只保留 Unicode 字符数至少 6 的规则;删除组合和用户名包含校验;同步前端提示;更新测试、Wiki;重新打包并创建 demo 管理员。 - 不做:不降低 bcrypt 哈希;不创建代码内默认账号;不把账号密码写入仓库、Wiki、工单评论或测试夹具;不修改 Bell。 ## 已确认方案 - demo 和生产共用规则:密码至少 6 个字符,无字符种类要求,允许包含用户名。 - 既有密码哈希不迁移;新初始化和新建用户应用新规则。 - 用户已明确接受相较 #40 进一步降低生产密码安全性的风险。 ## 需求变化记录 | 日期 | 变化内容 | 原因 | 用户确认 | |---|---|---|---| | 2026-08-13 | 取消字符组合和用户名包含限制,仅保留至少 6 位 | 允许简单密码和指定管理员凭据 | 是,明确包含生产模式 | ## 文档影响 - [x] 更新业务规则与术语 - [x] 更新管理员交付说明 ## 验收标准 - [ ] 6 位全小写密码通过;5 位密码拒绝。 - [ ] 包含用户名的 8 位密码通过。 - [ ] bootstrap 和创建用户继续使用同一后端规则。 - [ ] 前端只提示至少 6 位,不显示已取消限制。 - [ ] Windows ZIP 重建并用指定管理员完成 demo 初始化和登录。 - [ ] 密码不写入仓库、Wiki、工单或日志。 ## 验证方式 ```powershell cd Sense\server go test ./app/sense/identity/... ./... cd ..\ui corepack pnpm@9.15.1 lint cd ..\.. cmd /c Sense\scripts\package-windows.bat ``` 另使用运行时注入的一次性令牌调用 bootstrap 和 login,响应只记录状态码,不记录密码。 ## 风险和回退 风险:允许低复杂度及包含用户名的生产密码会显著增加字典猜测和凭据填充风险;当前未以 MFA 或外部身份提供者补偿。回退:恢复 #40 复杂度和用户名限制并重新打包;既有弱密码需管理员主动重置,代码回退不会自动使其失效。
ila added the kind/taskproject/sensescope/independentpriority/p0 labels 2026-08-13 09:13:16 +08:00
Author
Owner

状态:进行中(2026-08-13)nn已按确认实现“所有模式仅校验密码至少 6 个字符”:删除字符组合和用户名包含限制;新增全小写、包含用户名、Unicode 六字符通过及五字符拒绝测试。身份测试通过,前端 lint 0 error(既有 warning)。

## 状态:进行中(2026-08-13)`n`n已按确认实现“所有模式仅校验密码至少 6 个字符”:删除字符组合和用户名包含限制;新增全小写、包含用户名、Unicode 六字符通过及五字符拒绝测试。身份测试通过,前端 lint 0 error(既有 warning)。
Author
Owner

状态:待验收

  • 实现提交:8091fbb
  • 长期文档提交:88dcebc
  • 归档登记提交:245d38d
  • 最终归档提交:cb3015a
  • 分支:agent/codex/42-sense-password-length-only
  • Pull Request:#43(堆叠于 #41)
  • Wiki 归档:Task-42-Sense密码策略仅限制最短6位
  • Wiki revision:53d52a17ae17

验证:全小写、包含用户名和 Unicode 六字符通过;五字符拒绝;Sense 全包测试、前端 lint、Windows 打包、Harness 与 Wiki 镜像检查通过。运行时管理员初始化返回 201、登录返回 200;凭据已脱敏,未写入工单或版本化资料。

ZIP:7,280,519 bytes,SHA-256 7A1DC3378ECAD90DC7521F1E49C7A279E4C31B38D6EBC8CC30E123528BECDEE4。

未验证部分:真实 PostgreSQL 和目标管理员页面验收。工单保持 open。

## 状态:待验收 - 实现提交:`8091fbb` - 长期文档提交:`88dcebc` - 归档登记提交:`245d38d` - 最终归档提交:`cb3015a` - 分支:`agent/codex/42-sense-password-length-only` - Pull Request:https://git.ilapage.cn/ila/yovision/pulls/43(堆叠于 #41) - Wiki 归档:`Task-42-Sense密码策略仅限制最短6位` - Wiki revision:`53d52a17ae17` 验证:全小写、包含用户名和 Unicode 六字符通过;五字符拒绝;Sense 全包测试、前端 lint、Windows 打包、Harness 与 Wiki 镜像检查通过。运行时管理员初始化返回 201、登录返回 200;凭据已脱敏,未写入工单或版本化资料。 ZIP:7,280,519 bytes,SHA-256 `7A1DC3378ECAD90DC7521F1E49C7A279E4C31B38D6EBC8CC30E123528BECDEE4`。 **未验证部分**:真实 PostgreSQL 和目标管理员页面验收。工单保持 open。
Author
Owner

用户验收通过(2026-08-14)

用户已明确确认当前未验收工单通过验收。本工单的实现、测试与既有证据按记录接受,Wiki 归档状态已更新为“已完成”(revision 32d7141238d7)。该交付属于重建前历史实现;Wiki 归档已完成,代码与原归档镜像继续保留在 explore 追溯。

此验收不改变 #58 的架构决定:旧自研基础框架不会恢复为 dev 基线,Sense/Bell 后续仍分别由 #61/#62 从冻结 GoAdmin 源码重建。

## 用户验收通过(2026-08-14) 用户已明确确认当前未验收工单通过验收。本工单的实现、测试与既有证据按记录接受,Wiki 归档状态已更新为“已完成”(revision `32d7141238d7`)。该交付属于重建前历史实现;Wiki 归档已完成,代码与原归档镜像继续保留在 `explore` 追溯。 此验收不改变 #58 的架构决定:旧自研基础框架不会恢复为 `dev` 基线,Sense/Bell 后续仍分别由 #61/#62 从冻结 GoAdmin 源码重建。
ila closed this issue 2026-08-14 10:06:49 +08:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ila/yovision#42