日期:2018-01-25 来源:短信大咖
一、对注册流程进行限定
一般来讲被攻击的地方是注册页面,一般是从两个方面进行触发流程的限定。第一种,可以从前端写入指令,只允许在官网主页跳转入注册页面;第二种,是对注册流程进行分步,先进行账户密码设置,设置成功后才可以再进行下一步的验证短信。
因为增加前置条件,增加攻击难度两种方法都是能有效防止自动化攻击,需要注意的是两种方法对用户体验或多或少的影响,验证码短信需要自身平台特点选择。
二、对发送者进行唯一性识别
为了防止单个手机号无限制刷短信,恶意攻击者通过修改传向服务器各项参数,造成多ip多手机号刷验证码短信的行为,所以后台应对前台传过来的参数进行验证。方法一般是用token作为唯一性识别验证,后台写一个算法将token注入到前端,然后可以通过相应的规则获取到token,在发送验证码短信请求接口数据时带上token,在后端对token进行验证,验证通过才能正常将短信发送。
在验证码短信设计过程中一般采用这种方法组合,基本可以防止大部分恶意刷验证码短信的行为。短信人员要在防护与用户体验之间寻找平衡,结合自身验证码短信特点选择,要未雨绸缪不应到短信被刷才进行防护。
三、对ip进行限制
对单ip最大发送量进行限制,可以有效防止单一ip下多手机被刷机的问题。最大发送量限制是防止恶意攻击者同ip下不同手机号进行刷验证码短信行为。根据平台实际情况设计一个短信最大发送量的阈值,超过阈值将不予返回短信。
四、限制单个手机号每日接收短信次数和时间间隔
对单个手机号进行日接收次数的限制,可以防止单个手机号无限制刷短信,同时设置时间间隔可以有效防止人工刷票。短信接收次数可以根据平台特点进行限制,一般日接收验证码次数为10次左右。同一号码发送时间间隔通常为60秒,前后应保持一致,避免出现只前端做倒计时限制,后台未做限制这种低级错误。
五、前端增加图文验证码
在获取验证码短信前增加图文验证码是较为常用的方法。攻击者一般是采用自动化攻击,增加图片验证码后,攻击者对验证进行识别验证成功后才能进行模拟用户发送请求,这一步需要在页面中进行,无法采用自动化攻击。第一种攻击基本上失效,同时会增加第二种的攻击成本,选择验证时既要考虑用户操作过程的流畅度,又应该考虑到安全度。