Commit Graph

3 Commits

Author SHA1 Message Date
Syngnat
3ea04f5530 🐛 fix(webserver): 修复 X-Forwarded-For 可绕过登录失败锁定
- clientIP 改为以不可伪造的直连对端地址为准:该头完全由客户端控制,原实现无条件采信其首值,
  直连攻击者每次请求换一个值即可拿到全新限流桶,彻底绕过 5 次失败锁定
  (口令下限仅 6 位可在线爆破),并使 attempts map 无界增长;且每次尝试都会触发一次
  64 MiB 的 Argon2id 推导,形成认证面的 CPU/内存 DoS
- 新增 GONAVI_WEB_TRUSTED_PROXIES(IP/CIDR 逗号分隔):仅当对端命中该列表时才采信
  X-Forwarded-For,并取最右侧的非可信跳(左侧可被客户端预先伪造);非法值不予采信,
  避免用任意字符串制造新桶
- loginAttemptTracker 增加条目上限与过期清扫:条目原先只在登录成功或同 key 再次 allow 时
  才删除,分布式来源下会单向增长
- docker.web-server.env.example 补充新变量说明(含反代部署下必须配置的提示)
- 补 4 项回归测试,已确认还原为采信 XFF 首值后必定失败
2026-07-26 21:08:49 +08:00
Syngnat
8d186fc066 feat(web-auth): 支持六位密码与环境变量托管
- 密码策略统一为至少六个可见字符,覆盖初始化与设置中心改密
- 支持 GONAVI_WEB_PASSWORD 启动同步并保留既有 2FA 与会话配置
- 设置中心识别环境托管状态并禁用临时改密
- Compose、env 示例及双语文档补充密码配置和容器重建说明
- 增加认证持久化、环境覆盖、前端状态与 Docker 登录回归校验
2026-07-10 10:34:03 +08:00
Syngnat
4c9bff5e8c feat(web-server): 支持 Docker 部署浏览器 Web UI
- 新增 Dockerfile.web-server:前端构建 + 纯 Go 主程序 web-server 模式
- 提供 Compose/env 示例与本地源码构建 override
- CI 增加 gonavi-web-server 镜像构建、冒烟与 GHCR 发布
- 文档补充 Web 容器部署、数据卷与安全暴露说明
2026-07-09 09:56:56 +08:00