事先声明,本人对Ajax的一些理论知识不是很清楚,只是在做一个小项目时需要它花了不少时间(网站里的资料大部分不全,坑啊!)。
验证码一般用于登录以及注册,它是用于来鉴定是否是由用户在操作,而不是第三方软件以及一些暴力注册,登录的一个安全防范,(有的网站博客说验证码并不安全,具体各位上百度搜索一下)我们来谈一下如何实现,实现的方法有JSP,Ajax,Servlet这三种 其中Jsp分别由三个Jsp页面实现 这一种是将验证码交由后台处理的 如何想在前台进行onblur来实现前台判断的话 安全性不高 并且冲session中获得第一个值永远为空 在刷新之后 所有获得值则为上一次验证码的值 所以十分的头疼 网上查了很多资料都没有找到解决的方案.做了下调试 结果发现在一开始加载的时候rand(验证码的值)为空 当点击提交之后rand才会有值 并且是上一次验证码的值.找到了几种方法但都不会 有人说是请求的方式不对,更有人说是时间(感觉是在坑),当然也有些牛人说直接截取(偶完全不会),其中有一个方法几率较高就是定义一个隐藏值具体的百度一下(偶真的不会),如果有人喜欢用JSP实现的话记得在img.jsp(生成图片的JSP)最后加上两句
out.clear();
验证码一般用于登录以及注册,它是用于来鉴定是否是由用户在操作,而不是第三方软件以及一些暴力注册,登录的一个安全防范,(有的网站博客说验证码并不安全,具体各位上百度搜索一下)我们来谈一下如何实现,实现的方法有JSP,Ajax,Servlet这三种 其中Jsp分别由三个Jsp页面实现 这一种是将验证码交由后台处理的 如何想在前台进行onblur来实现前台判断的话 安全性不高 并且冲session中获得第一个值永远为空 在刷新之后 所有获得值则为上一次验证码的值 所以十分的头疼 网上查了很多资料都没有找到解决的方案.做了下调试 结果发现在一开始加载的时候rand(验证码的值)为空 当点击提交之后rand才会有值 并且是上一次验证码的值.找到了几种方法但都不会 有人说是请求的方式不对,更有人说是时间(感觉是在坑),当然也有些牛人说直接截取(偶完全不会),其中有一个方法几率较高就是定义一个隐藏值具体的百度一下(偶真的不会),如果有人喜欢用JSP实现的话记得在img.jsp(生成图片的JSP)最后加上两句
out.clear();
out = pageContext.pushBody();
一般网站都没有的 (我被坑的好惨).
现在就讲一下Ajax吧!它是由3个JSP.一个aspx 和aspx.cs 5个组成 可以实现界面无刷新(前面忘记将了 每刷新一次验证码就会造成整个界面刷新)它解决我们现有的问题就是无需由后台进行验证代码处理,也可以将验证码写入数据库 并且实现了无刷新 更加方便了用户的体验效果,但安全性低 因为它在前台就进行了验证 所以只要懂一点的便能直接获取到验证码。所以相对的来说 安全 与 快捷 是不能相等的 所谓的欲速则不达,尤其是在软件开发的这块 我们既要信息资料安全 又要快捷 节省资源 就像墙一样 你既不想绕墙但又不能没有墙 所以开发的时候 客户怎么说 你就要限制他的思路尽量的做到在你们技术范围内的。
一般网站都没有的 (我被坑的好惨).
现在就讲一下Ajax吧!它是由3个JSP.一个aspx 和aspx.cs 5个组成 可以实现界面无刷新(前面忘记将了 每刷新一次验证码就会造成整个界面刷新)它解决我们现有的问题就是无需由后台进行验证代码处理,也可以将验证码写入数据库 并且实现了无刷新 更加方便了用户的体验效果,但安全性低 因为它在前台就进行了验证 所以只要懂一点的便能直接获取到验证码。所以相对的来说 安全 与 快捷 是不能相等的 所谓的欲速则不达,尤其是在软件开发的这块 我们既要信息资料安全 又要快捷 节省资源 就像墙一样 你既不想绕墙但又不能没有墙 所以开发的时候 客户怎么说 你就要限制他的思路尽量的做到在你们技术范围内的。