网站开发中,就会经常涉及到图形验证码的校验,比如:
那么如何校验呢?
我们原来的校验方式:前后端都校验
步骤:
(1)前端js 校验图形验证码的MD5
(2)校验通过才真正发送请求到服务器;
(3)服务器再次校验图形验证码明文
注意:前端js校验的不是图形验证码明文,而是其MD5值;
如何获取图形验证码的MD5值呢?
服务器需要提供一个单独的接口,返回当前图形验证码的MD5.什么叫"当前"?
就是从session或redis中获取一个图形验证码,而不是重新生成.
后来我们修改了验证方式:只在服务器端校验.
为什么去掉了在前端js MD5校验呢?
根本原因是:我们当时的图形验证码只有4位,而且全部是字母,很容易被破解.比如 http://www.cmd5.com/ 就是专门干这个的
可以参考我的另外关于MD5的博客 :
http://hw1287789687.iteye.com/blog/2248365
http://hw1287789687.iteye.com/blog/2248374
所以坏蛋就可以通过破解验证码的MD5值来获取图形验证码明文,然后就可以放心大胆的攻击了.