如何有效防止别人恶意刷验证码

相信不少朋友都有试过被人恶意刷验证码的经历,固然我也不例外,以前被人恶意搞过一次,若是短信服务针对的用户不仅是国内用户还涉及国外用户的话,更加要作好安全机制,否则损失会很严重(由于国外的短信费用更加昂贵),因此才会有感写出一些相应的解决方法!html

(1)要根据自身业务逻辑去限制同个号码天天最多的短信请求次数(简洁点来讲就是限定的次数足够你去进行操做,若是超出了不少次,那很明显就是恶意搞事啦);安全

(2)针对不一样的IP限定发送次数(不过搞事的人可能会不断去切换IP地址,因此最好仍是根据对应的状况加个IP地址的黑名单);session

(3)发送验证码须要有时间间隔,时间控制在60秒左右,并且这个时间间隔的判断最好不要单单在前台判断,最后后台也存一个session的记录,由于别人若是是经过代码去刷的话,会直接跳过前台的页面操做;url

(4)通常刷验证码都是经过代码去搞的,因此最好在获取验证码的上一个流程里,传递一个随机数过来(注意不要用url去传递和不要在html里出现,省得被对方知道你的方式,从而找到方法去获取),这样有效控制恶意刷验证码的状况;htm

(5)使用画布验证码,这个也是最简单和最有效的防御方法,超级地有效拦截了非人为的操做;io

(6)能够改用用户发短信到指定的手机号码验证,这样被刷的风险就不了(不过这种方法会增长用户的操做难度,用户体验不太好,因此我的不建议使用这个方法去防范);验证码

固然这些方法可能不会彻底拦截全部恶意刷验证码的攻击,可是咱们使用以上方法至少能给搞事的人增添一些难度,减小验证码恶意被刷的状况!后台

相关文章
相关标签/搜索