验证码安全
一、简介
1、介绍
验证码(CAPTCHA)是completely Automated Public Truing Test To Tell Computers And Humans Apart(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。
2、作用
可以有效防止恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断地登陆尝试。
二、验证码分类
1、GIF动画验证码
GIF动态的验证码图片可以防止识别器的识别,还可以提供清晰的图片。
2、手机短信验证码
通过手机发送验证码,可以比较准确和安全地保证购物的安全性,验证用户的正确性,是最有效的验证码系统。某些验证码接入商提供手机短信验证码服务,各网站通过接口发送请求到接入商的服务器,服务器发送随机数字或字母到手机中,由接入商的服务器统一做验证码的验证。
3、手机语音验证码
可以实现自动语音播报,同时短信也能在同时间发送到用户手机,实现双保险确保万无一失。
4、视频验证码
视频验证码是将含有随机数字、字母和中文组合而成的动态验证码嵌入到MP4、FLV等格式的视频中。可以有效防止字典攻击、穷举攻击。
三、原理
客户端发起请求——>服务端响应并创建一个新的SessionID,同时生成一个随机验证码——>服务端将验证码和SessionID一并返回给客户端——>客户端提交验证码连同SessionID一起给服务端——>服务端验证验证码并销毁当前会话,返回给客户端结果。
四、防御措施
- 强制要求输入验证码,否则必须实施IP策略。注意不要被X-forwarded-For绕过了。
- 验证码只能用一次,用完立即过期,不可再次使用。
- 验证码不要太弱。扭曲、干扰线条、干扰背景色、变换字体等。
- 大网站最好统一安全验证码,各处使用同一个验证码接口。
版权归原作者 liebe1*1 所有, 如有侵权,请联系我们删除。