mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-08-09 16:23:27 +08:00
- 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 首值后必定失败
1.6 KiB
1.6 KiB