之前 FAM_AUTH_USER/FAM_AUTH_PASS 没配置时会退回代码里写死的 ericwyuan/ iLoveJava5——这两个值跟 NAS SSH 密码是同一个,且这个登录页已经通过 frp 暴露在 公网上。.env 万一没配置好(这个项目里已经发生过好几次"忘了 source .env"的 情况),公网入口就会用一个和 SSH 密码相同、且写在源码里的已知密码兜底,双重 风险叠一起。 现在改成 fail-closed:FAM_AUTH_USER/FAM_AUTH_PASS 只要有一个没配置,直接拒绝 所有登录(打一条 ERROR 日志提醒去配 .env),不再有任何硬编码默认值。 会话有效期从 7 天改成 2 小时(按用户要求)。 新增 test_auth.py 11 个用例覆盖:未配置时 fail-closed、正确/错误凭据校验、 只配了一半也要拒绝、session 过期判定、白名单路径匹配。 已实测验证:当前 .env 里 FAM_AUTH_USER/PASS 仍是配置好的(还是 ericwyuan/ iLoveJava5,这个值本身没改——只是不再硬编码在代码里,运维如果想换成不同于 SSH 的密码,现在改 .env 就行,不用改代码),登录/拒绝错误密码都验证正常, cookie Max-Age=7200 确认生效。
3.5 KiB
3.5 KiB