直接回答:暴力破解是针对单个账号穷举密码;撞库(credential stuffing)是拿其他网站泄露的"邮箱+密码"成对组合批量尝试登录,利用的是用户跨站复用密码的习惯。两者都消耗登录接口的试错能力,防御思路一致:提高单次尝试成本、限制尝试速率、识别异常流量、并让用户不再只依赖单一口令。
实践要点:第一,密码用 Argon2/bcrypt 慢哈希存储,即使库被拖走也能拖垮离线爆破。第二,多维限流:按账号、IP、设备指纹分别计数,连续失败 N 次后指数退避或临时锁定——注意锁定策略别被利用来对他人做拒绝服务。第三,触发式风控:异常 IP 段、异地登录、失败率突增时要求验证码或直接拦截,而不是对所有用户常驻验证码。第四,推广 MFA,撞库拿到密码也过不了第二关。第五,监控告警:对登录失败日志做聚合分析,撞库在流量曲线上特征明显。另外登录失败提示不要区分"用户不存在"和"密码错误",避免账号枚举;注册与找回密码接口同理要防枚举和短信轰炸。
追问方向:账号锁定策略有哪些权衡?IP 信誉库和设备指纹如何识别撞库流量?MFA 有哪些实现方式?
(约 420 字)