Files

动态码认证与标题修订验收 · 2026-10-27

参考用户指定聊天中的PROMPT流程:6位/30秒TOTP、共享验证器、7天HttpOnly/SameSite=Lax会话、20次/5分钟限流、动态码时间步防重放、SSH管理员二维码工具。Tabularium生成独立密钥,不使用PROMPT密钥。

Tabularium保持现有Pages Router和部署架构,使用项目独立SQLite文件保存尝试与已用时间步,不引入外部数据库。密钥和状态在本项目私有挂载目录持久保存,正常升级只初始化缺失配置,绝不自动轮换。未配置或配置损坏时正文拒绝访问。

本地验证

  • 三个认证单元测试通过:RFC6238官方SHA1测试向量、窗口与格式;会话篡改/过期/未来时间/过长寿命;SQLite重新打开后的重放与限流。
  • auth-cli exercise通过:匿名HTML、文档JSON、SVG重定向登录;未知API返回401;伪造middleware头不能绕过;登录页不包含密钥;有效会话可读全部文档与资源;伪造会话无效;并发同码只有一次200,其余401;跨站403;退出清Cookie;连续尝试429。
  • 实际浏览器在本地独立测试配置下输入动态码成功,按next返回原文档。未在工具输出中打印密钥或动态码。
  • 架构文章标题为“Endor 系统架构”;该文主标题上方讨论草案徽标数量为0,正文保留架构说明以区分设计与已实现内容。
  • lint、类型检查、认证测试、生产构建及现有四个CI/部署脚本单元测试通过。本机继续使用此前可用的webpack构建,再打包服务器CLI;CI生产构建配置继续使用Next.js默认构建。

交付与安全边界

  • login.png:不含动态码的登录入口截图。
  • architecture.png:登录后新标题与去除徽标的页面截图。
  • 绑定二维码保存于仓库外的私有目录,绝不放入此验证目录或公开网页。
  • 当前公网HTTP与参考项目一致,HTTP不加密动态码/会话。HTTPS启用后应将AUTH_COOKIE_SECURE设为true。
  • 该方案是验证器动态码单因素登录,不声称是密码加动态码的双因素组合。

依据:RFC6238、Next.js Proxy。