jsp 验证码 保存到session中 第一次登录失败问题

项目中验证码的实现思路:登录页面 调用 jsp页面 生成验证码图片 并把验证码保存到 session中

用户登录的controller 中 把用户输入的验证码和 session中取出的验证码 进行比较 ,相同则验证码输入正确。

测试中出现一个bug ,bug描述:IE浏览器下 用户第一次登录 总是显示 验证码错误  登录失败,除第一次外都能登录成功。登录成功后 退出,再次登录没问题。直接关闭IE浏览器 再次登录 显示 验证码错误 登录失败。其他浏览器 如 Google,火狐不出现。

 

解决思路  刚开始定位到IE浏览器 缓存问题,给添加 随机变量 防止IE浏览器缓存 而不进行重新请求验证码。 添加后发现问题不在这。

监听session的创建发现 进入登录页面  和 用户登录请求 创建了 两个session,登录页面时 把验证码保存到第一个session中,登录验证时候 是和 第二个session 比较的 ,第二个session 中 不存在保存的验证码 为null 所以第一次登录 一直是验证码错误登录不了。

 

解决方法   登录页面 js生成验证码保存到隐藏域中, 并发送请求到 img.jsp 显示验证码。用户登录验证修改为和页面传过来的验证码比较。暂时解决了这个问题。当然这样做安全上存在很大的问题。

不知道我这出现的问题是个例还是大家都出现过这样的问题呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值