登录系统中验证码的使用(防注册机SPAM)

登录系统中防止暴力破解账号 ,很有效的一个办法就是使用验证码(这里所说的都是图片的验证码),我一直以来也都是使用这种办法,现在来探讨一下关于验证码的实现方式以及一些弊端和解决办法。
        一个基本的验证码方案实现流程为:
        1、实现一个图片生成模块,然后用此模块实现一个输出图片的页面。这个页面每次每访问时都需要生成一个新的验证码,把验证码的值存入一个能跨请求(Request)的存储系统中(比如Session),然后输出这个验证码图片。
        2、在需要加验证码的页面引用1中的验证码图片地址()。在每次用户数据提交后如果页面不刷新,也需要重新加载验证码图片(即刷新验证码)。
        3、用户提交数据后,后台系统中拿到用户提交的验证码和存储系统中的验证码值作比较,如果不匹配则报错(这时候需页面需要生成新的验证码)。
        这样一个流程基本能实现一个简单的验证码方案,不过这种方案对用户体验却有个弊端:用户每次都得输入验证码,验证码越难认,输入越麻烦(我有过10几分钟没有完成yahoo注册的经验,其中一个问题就在于那个验证码太复杂,输错验证码后填写的注册信息全丢失)。如果你尝试登录Google,在N(10)次登录不成功之后,登录页就会出现一个验证码,之后的登录尝试都必须填入验证码。
       我现在分析怎样改进前面的方案,实现和Google登录系统一样的验证码效果(如果你的验证码是每次都需要的,则用不着下面的方法)。
       如果需要等到登录失败多次后再出验证码,那么需要在Session中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值