短信防刷机制设计

短信验证码可以验证手机号的有效性,短信验证应用的地方越来越多,写这篇博文的原因是因为我司最近弄了个H5活动,有个发送短信验证码的功能由于java组没做防刷机制导致短信被刷。而他们的解决办法令我匪夷所思,因为根本起不到作用。所以想写一篇关于防刷的博文。

短信被刷也算网络攻击的一种,网络攻防一直是相爱相杀的存在。没有绝对的防御,只有不断增强防御,提高攻击者的攻击成本,使其攻击成本高于收益,从而放弃攻击。

短信防刷也是同样的道理,就是不断的增加攻击者的攻击成本。攻击者一般会尝试使用不同的攻击方式进行试探性攻击,根据反馈回来的信息做进一步分析,完善攻击方式,从而进行有效攻击。 所以对于明显属于攻击的行为,尽量不要给出明确的错误提示是非常重要的(业务逻辑错误的提示除外)。 这样,攻击者就不能很快的判断到底是什么地方验证没通过,从而增加攻击者攻击成本。

下面给出详细的放刷思路:

第一步,验证请求方式

一般网页发送验证码是通过ajax发送post请求,所以可验证是否是ajax请求、post请求。而APP、小程序等一般发送post请求接口,可验证是否是post请求。如果出现这类错误,基本是非法攻击行为,不要给出明确的错误提示,给出诸如“系统错误”之类的模糊提示。但,请求方式是可以伪造的,这种判断只能过滤小白攻击者,还需后续验证

第二步,分析请求头中的Referer

一般情况下,用户先进入页面输入手机号然后点击发送验证码,所以可以根据请求头中的Referer来

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值