如何有效防止别人恶意刷验证码
2017-04-04 19:54
267 查看
相信很多朋友都有试过被人恶意刷验证码的经历,当然我也不例外,之前被人恶意搞过一次
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/knock.gif)
如果短信服务针对的用户不只是国内用户还涉及国外用户的话,更加要做好安全机制,不然损失会很严重(因为国外的短信费用更加昂贵),所以才会有感写出一些相应的解决方法!
(1)要根据自身业务逻辑去限制同个号码每天最多的短信请求次数(简洁点来说就是限定的次数足够你去进行操作,如果超出了很多次,那很明显就是恶意搞事啦);
(2)针对不同的IP限定发送次数(不过搞事的人可能会不断去切换IP地址,所以最好还是根据对应的情况加个IP地址的黑名单);
(3)发送验证码需要有时间间隔,时间控制在60秒左右,而且这个时间间隔的判断最好不要单单在前台判断,最后后台也存一个session的记录,因为别人如果是通过代码去刷的话,会直接跳过前台的页面操作;
(4)一般刷验证码都是通过代码去搞的,所以最好在获取验证码的上一个流程里,传递一个随机数过来(注意不要用url去传递和不要在html里出现,免得被对方知道你的方式,从而找到方法去获取),这样有效控制恶意刷验证码的情况;
(5)使用画布验证码,这个也是最简单和最有效的防护方法,超级地有效拦截了非人为的操作;
(6)可以改用用户发短信到指定的手机号码验证,这样被刷的风险就不了(不过这种方法会增加用户的操作难度,用户体验不太好,所以个人不建议使用这个方法去防范);
当然这些方法可能不会完全拦截所有恶意刷验证码的攻击,但是我们使用以上方法至少能给搞事的人增添一些难度,减少验证码恶意被刷的情况!
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/knock.gif)
如果短信服务针对的用户不只是国内用户还涉及国外用户的话,更加要做好安全机制,不然损失会很严重(因为国外的短信费用更加昂贵),所以才会有感写出一些相应的解决方法!
(1)要根据自身业务逻辑去限制同个号码每天最多的短信请求次数(简洁点来说就是限定的次数足够你去进行操作,如果超出了很多次,那很明显就是恶意搞事啦);
(2)针对不同的IP限定发送次数(不过搞事的人可能会不断去切换IP地址,所以最好还是根据对应的情况加个IP地址的黑名单);
(3)发送验证码需要有时间间隔,时间控制在60秒左右,而且这个时间间隔的判断最好不要单单在前台判断,最后后台也存一个session的记录,因为别人如果是通过代码去刷的话,会直接跳过前台的页面操作;
(4)一般刷验证码都是通过代码去搞的,所以最好在获取验证码的上一个流程里,传递一个随机数过来(注意不要用url去传递和不要在html里出现,免得被对方知道你的方式,从而找到方法去获取),这样有效控制恶意刷验证码的情况;
(5)使用画布验证码,这个也是最简单和最有效的防护方法,超级地有效拦截了非人为的操作;
(6)可以改用用户发短信到指定的手机号码验证,这样被刷的风险就不了(不过这种方法会增加用户的操作难度,用户体验不太好,所以个人不建议使用这个方法去防范);
当然这些方法可能不会完全拦截所有恶意刷验证码的攻击,但是我们使用以上方法至少能给搞事的人增添一些难度,减少验证码恶意被刷的情况!
相关文章推荐
- 如何有效防止别人恶意刷验证码
- 短信接口验证码如何防止被恶意点击
- 如何防止别人恶意调用API接口?
- 如何防止别人恶意调用API接口?
- 如何防止验证码接口被恶意攻击
- Android apk如何防止反编译和如何快速有效的反编译别人的Apk
- 如何防止验证码接口被恶意攻击
- 注册时发短信如何防止别人恶意调用短信接口
- 如何防止短信接口验证码被恶意点击?
- 如何防止博客文章被恶意转载?
- 如何防止 Wiki 被恶意篡改?
- 如何防止恶意POST数据?
- PHP中如何防止外部恶意提交调用ajax接口
- 前后端分离,如何防止接口被其他人调用或恶意重发
- Dede cms文章内容管理系统安全漏洞!如何有效防止DEDE织梦系统被挂木马安全设置
- 如何破解Ubuntu root密码及防止别人通过单用户模式修改密码(个人转载,可谓经典之作,层层设密,层层破解)
- 如何防止恶意网页篡改注册表
- 修改验证码为加法运算问题,有效防止广告信息
- 笔记:如何防止别人反编译你的APP
- [转]短信验证码如何防止不恶意点击被刷!