刚才在A5论坛上修改自己资料时,看到要输入验证码,不禁让我想写些什么。 经常上网逛论坛的网友对于验证码都不会陌生,随着互联网垃圾信息的增多,基本上所有存在交互式的网站在用户提交内容时,都会有验证码,而且验证码越来越变态,原因就是简单的验证码己经无法阻挡垃圾信息的入侵,像DZ论坛,甚至使用两个验证码,还有使用古诗填空。
验证码也许是现在网站影响用户体验中最坏的一环,越是复杂难认的验证码用户体验越差。最有名的算是腾讯的变形汉字和Google的超变形字母,当然有些讨坛使用古诗填空或其他汉字类验证码,基本上把不懂汉语的用户拒之门外。 最近自己开发的一个新网站中,对验证码的使用,也算是有一点点心得体会,有时真的那么需要验证码吗?
1、如果技术上能达到检测用户的恶意输入则不用验证码,或在检测恶意输入后,输入验证码。这一点,豆瓣做得就比较好。或者通过客户端JS加密函数在每次提交数据时,动态生成一串字符一起提交到服务器端,在服务器端根据某些参数做验证,虽然JS加密函数会被破解,但每次可以随机生成一些字符来做加密参数,这样可以避免机器提交,像西祠。
2、如果技术上暂时做不到这些,那就尽量减少不必要的验证码。要明白使用验证码是为了阻止机器提交,机器提交信息的目的是显示信息,对于有些用户提交的内容是不对外显示的,比如用户登录,比如用户在修改自己资料时,比如用户向网站提交建议,在这些地方加验证码,显然是多此一举,甚至会打消用户提交的想法。
3、对于目前机器自动识别验证码的技术,无非就是通过学习验证码,分析其中字符并入库,当样本库达到一定级别时,识别率也随之上升,有的甚至可能达到90%以上。但是,机器学习是需要时间的,当验证码中字符发生改变后,之前的样本库基本上就没有意义,所以在生成验证时,随机的字体,字号,变形程度,也可以让机器识别的难度大上几个级别。
当然,事情总不是完美的,没有100%的好方法,以上也只是自己在开发拼一拼网站时的一些心得,拼一拼最后选择的是验证码,因为时间上原因,暂时没有精力去像豆瓣或西祠那样实现,不过以后会改进的。 欢迎大家和我交流一些网站开发方面的心得。QQ:4154193 网址:http://www.pin1pin.com。