Yihui’s Blog

注册接口被攻击、伪造手机号大量发送验证码,除限流外如何解决?

日期:2026-07-12
标签:#面试 #八股 #后端 #验证码 #风控 #安全 #场景题

一句话答案

通过人机验证、设备与行为风控、号码真实性与归属校验、发送前确认、成本控制和供应商防护提高攻击成本,并保护被骚扰手机号。

面试口语版

限流只是基础,还要把短信发送从“知道手机号即可触发”变成通过风险校验的动作。先做图形/滑块/无感验证码和一次性挑战,绑定设备、会话、手机号和请求目的;分析设备指纹、代理网络、账号年龄、操作路径和批量号码模式,高风险要求更强验证或直接拦截。可对异常号码做发送保护、用户投诉黑名单和运营商风险查询;验证码内容明确平台和安全提示。短信供应商设置日预算、单模板/区域熔断和异常告警,突增时切换语音/邮件或人工审核。

关键细节

  • 攻击者可利用接口骚扰真实手机号,受害者不是请求发起者。
  • 验证码不可回显,存哈希并设置短有效期和错误次数上限。
  • 发送成功不代表短信送达,供应商回执也要监控。
  • 防护策略按风险渐进,避免所有用户都做高摩擦验证。

面试官追问

  1. 攻击者接入打码平台怎么办?
  2. 如何保护被反复骚扰的手机号?
  3. 如何防止验证码被暴力猜测?

面试官追问参考答案

1. 攻击者接入打码平台怎么办?

验证码不能作为唯一信号,结合设备信誉、行为轨迹、IP/ASN、号码序列规律和挑战通过速度做风险评分。动态提高挑战难度,限制新设备高成本动作,并对自动化轨迹做模型检测。

2. 如何保护被反复骚扰的手机号?

为手机号维护接收保护状态和跨 IP/设备总次数,达到风险阈值暂停发送并提供申诉/解除渠道;相同业务短时间只保留一个有效验证码。通知内容明确非本人可忽略且不泄露账户信息。

3. 如何防止验证码被暴力猜测?

验证码随机、短时有效、单次使用,校验绑定手机号、会话和用途;限制错误次数,超过后作废并冷却。服务端只存哈希,使用常量时间比较,校验成功立即撤销。

学习清单

  • 能从人机、设备、行为和成本四层防护。
  • 理解发送保护与验证码校验安全。
维护与整理 · Yihui在 GitHub 上编辑

继续阅读

浏览全部文章