如何防范短信接口被恶意调用(被刷)

鉴于以前遇到太短信接口被刷的问题,解决的不是很好。现发现一篇如此高质量博客,特此收藏分享~html

1、什么是短信轰炸(短信接口被刷)

  短信轰炸通常基于 WEB 方式(基于客户端方式的原理与之相似),由两个模块组成,包括:一个前端 Web 网页,提供输入被攻击者手机号码的表单;一个后台攻击页面(如 PHP),利用从各个网站上找到的动态短信 URL 和 前端输入的被攻击者手机号码,发送 HTTP 请求,每次请求给用户发送一个动态短信。前端

  • 被攻击者大量接收非自身请求的短信,形成没法正常使用移动运营商业务。
  • 短信接口被刷一般指的就网站的动态短信发送接口被此类短信轰炸工具收集,做为其中一个发送途径。

  具体工做原理以下:安全

  1. 恶意攻击者在前端页面中输入被攻击者的手机号;
  2. 短信轰炸工具的后台服务器,将该手机号与互联网收集的可不须要通过认证便可发送动态短信的 URL 进行组合,造成可发送动态短信的 URL 请求;
  3. 经过后台请求页面,伪造用户的请求发给不一样的业务服务器;
  4. 业务服务器收到该请求后,发送动态短信到被攻击用户的手机上。

  流程示例: 短信验证码轰炸流程服务器

2、短信轰炸的防御方案

  鉴于短信轰炸的发起通常都是服务器行为,应该采用以下综合手段进行防护:工具

  1. 增长图形验证
  2. 单IP请求次数限制
  3. 限制号码发送

(一)增长图形验证

  恶意攻击者采用自动化工具,调用“动态短信获取”接口进行动态短信发送,缘由主要是攻击者能够自动对接口进行大量调用。   采用图片验证码可有效防止工具自动化调用,即当用户进行“获取动态短信” 操做前,弹出图片验证码,要求用户输入验证码后,服务器端再发送动态短信到用户手机上,该方法可有效解决短信轰炸问题。网站

  安全的图形验证码必须知足以下防御要求spa

  • 生成过程安全:图片验证码必须在服务器端进行产生与校验;
  • 使用过程安全:单次有效,且以用户的验证请求为准;
  • 验证码自身安全:不易被识别工具识别,能有效防止暴力破解。

图形验证的示例

(二)单IP请求次数限制

  使用了图片验证码后,能防止攻击者有效进行“动态短信”功能的自动化调用;但若攻击者忽略图片验证码验证错误的状况,大量执行请求会给服务器带来额外负担,影响业务使用。建议在服务器端限制单个 IP 在单位时间内的请求次数,一旦用户请求次数(包括失败请求次数)超出设定的阈值,则暂停对该 IP 一段时间的请求;若情节特别严重,能够将 IP 加入黑名单,禁止该 IP 的访问请 求。该措施能限制一个 IP 地址的大量请求,避免攻击者经过同一个 IP 对大量用户进行攻击,增长了攻击难度,保障了业务的正常开展。htm

(三)限制发送时长

  建议采用限制重复发送动态短信的间隔时长,即当单个用户请求发送一次动态短信以后,服务器端限制只有在必定时长以后(此处通常为60秒),才能进行第二次动态短信请求。该功能可进一步保障用户体验,并避免包含手工攻击恶意发送垃圾验证短信。blog

动态短信验证码使用流程

推荐连接: 人机验证:luosimao目前提供的免费图形验证码方案 产品防御:5种常见的短信验证码防刷策略接口

原文连接:如何防范短信接口被恶意调用(被刷)

相关文章
相关标签/搜索