统一失败响应
公开教程 · 无需登录

统一失败响应

登录失败时,外部无法区分账号不存在、口令错误还是已触发限流。三种原因使用相同的状态码与相同的响应文案,响应耗时也应接近。真实原因仅写入服务端日志。

账号不存在 口令错误 触发限流 对外:统一响应 相同状态码 · 相同文案 相近耗时 三种原因不可区分 攻击者视角 得不到任何区分依据 → 无法实施账号枚举 服务端日志 记录真实原因,仅用于故障排查
图:失败响应一致性。差异化文案、独立的限流状态码(429)以及异常响应耗时,都会成为账号枚举的判别依据;真实原因仅记入服务端日志。

口令仅以哈希形式存储,不保存明文。数据库连接口令与会话密钥通过环境变量注入,不写入代码仓库。/health 接口不要求认证,且不返回任何材料内容。