很多站点在处理登录安全时,会把“加验证码”当成万能答案。但在真实的凭证填充(Credential Stuffing)场景里,攻击者通常不会只从一个 IP、一个账号、一个时间窗口持续重试;他们会使用泄露密码库、代理池、自动化脚本和低频分散请求,让单点验证码或单一封禁策略很快失效。
所以,登录入口防刷的目标不应该是“拦住每一次失败登录”,而是建立分层防护:让批量尝试成本升高,让异常行为可见,让高风险操作需要更强验证,并且在用户体验和安全之间找到平衡。

一、先分清:暴力破解、密码喷洒与凭证填充
常见登录攻击可以粗略分成三类:
- 暴力破解:对少量账号尝试大量密码,特征通常是失败次数集中、节奏明显。
- 密码喷洒:对大量账号尝试少数常见密码,例如 “Password123” 或企业默认口令。
- 凭证填充:利用其他站点泄露的账号密码组合,在目标站点批量尝试复用登录。
凭证填充最麻烦的地方在于:攻击者使用的密码往往是真的,只是来自别处泄露。如果用户跨站复用密码,目标站点即使没有被入侵,也可能出现账号被接管。
二、密码策略不要只强调复杂度
OWASP Authentication Cheat Sheet 建议,认证设计要关注密码长度、允许长口令、避免静默截断密码,并对弱密码进行控制。实际落地时,比起强迫用户使用“大小写+数字+符号”的固定组合,更重要的是:
- 支持足够长的口令,允许用户使用 passphrase;
- 禁止常见弱口令、默认口令和已知泄露口令;
- 不要在前端或后端静默截断用户密码;
- 对密码重置、邮箱变更、MFA 关闭等敏感动作重新验证身份。
复杂度规则如果设计粗糙,反而会诱导用户写出“可预测的复杂密码”,比如在单词后面加年份和感叹号。对抗撞库时,弱口令库、泄露口令检测和 MFA 往往比形式化复杂度更有效。
三、MFA 是底线,但也要防“弱 MFA”
OWASP Multifactor Authentication Cheat Sheet 明确提到,MFA 对弱密码、密码复用、凭证填充和密码喷洒等密码相关攻击有显著防护价值。但 MFA 不是“勾选功能就完事”,还要注意以下问题:
- 优先支持 TOTP、安全密钥、Passkey/WebAuthn 等抗钓鱼能力更强的方式;
- 短信验证码适合作为过渡方案,但不应作为高价值账号的唯一强验证;
- MFA 绑定、解绑、找回流程必须有审计和二次确认;
- 对管理员、编辑、财务、运维等高权限账号强制启用 MFA。
很多账号接管事件并不是 MFA 本身失效,而是恢复流程、客服流程、邮箱控制权或备用验证码管理出了问题。真正的 MFA 防护,要覆盖“登录前、登录中、登录后”和“找回账号”的完整链路。
四、速率限制要按多维度设计
只按 IP 封禁很容易被代理池绕过,只按账号封禁又可能被用来做拒绝服务攻击。更稳妥的做法是组合多个维度进行限速和风险评分:
- 账号维度:同一账号短时间失败次数、异地登录、设备变化;
- IP / 网段维度:同一来源失败率、访问路径、代理特征;
- 设备与指纹维度:浏览器、UA、Cookie、TLS 指纹、行为节奏;
- 业务维度:登录成功后是否立刻修改邮箱、导出数据、创建 API Key;
- 时间维度:夜间异常、节假日异常、短时间跨区域访问。
分层限速的重点不是“一刀切封死”,而是根据风险逐步升级动作:静默观察、延迟响应、增加验证码、要求 MFA、冻结高风险操作、通知用户确认。
五、日志和告警要能回答三个问题
登录安全日志不只是记录“成功/失败”。为了在事后排查凭证填充,需要日志至少能回答:
- 谁被尝试了?账号、邮箱、用户 ID、是否高权限账号。
- 从哪里来?IP、网段、ASN、地理位置、代理/VPN 特征。
- 后续做了什么?是否登录成功、是否修改安全设置、是否访问敏感资源。
如果只记录失败次数,安全团队很难区分“用户忘记密码”和“撞库正在发生”。建议把登录失败、MFA 失败、密码重置、邮箱变更、会话刷新、API Token 创建等事件串成一条可追踪链路。
六、默认安全:把责任前移到产品设计
CISA Secure by Design 强调,产品应该在设计阶段就把安全作为核心要求,而不是把安全负担主要转嫁给用户和小组织。放到登录入口设计里,至少包括:
- 新系统默认提供 MFA、日志、SSO 等安全能力;
- 后台、管理端、API 控制台默认更高安全等级;
- 默认关闭危险的旧认证方式和弱恢复流程;
- 给用户清晰的登录提醒、设备管理和会话退出能力。
对中小站点来说,不一定要一次性建设完整风控平台,但可以先做几件高价值的事:管理员强制 MFA、登录失败日志结构化、后台入口限速、异常登录通知、密码重置流程加审计。
七、一份可执行的登录入口防护清单
- 启用 MFA,管理员和高权限账号强制开启;
- 检查密码策略:长度、弱口令、泄露口令、禁止静默截断;
- 对登录、注册、找回密码、MFA 验证分别设置限速;
- 按账号、IP、设备、行为节奏做组合风险判断;
- 对异常登录成功后的敏感操作进行二次验证;
- 保留足够详细的认证日志,并接入告警;
- 定期检查管理员账号、废弃账号和第三方登录配置;
- 准备账号接管应急流程:冻结、通知、重置、审计、复盘。
结语
登录入口安全不是验证码、密码复杂度或封 IP 某一个点能解决的问题。凭证填充攻击利用的是“用户复用密码”和“系统缺少分层防护”的组合弱点。更可靠的做法,是把密码策略、MFA、速率限制、行为风控、日志审计和默认安全设计放在同一张防护图里,先保护高权限账号和关键路径,再逐步扩展到全站用户。

日本 1F
验证码真不是万能的,之前后台被代理池刷到报警。
山东省济南市 2F
管理员不强制 MFA 我真睡不踏实。
日本 3F
弱口令检测接哪个库比较稳?
日本 4F
只封 IP 太天真了吧,代理一换就过去。
山东省德州市 5F
短信验证码当主力,感觉有点悬。