其实验证码的作用非常简单,就是为了防止别人用程序恶意的大批量提交、注册信息,还有比如在论坛恶意灌水发广告等等行为。所以基本上可以说验证码限制的都是不好的行为。有的验证码虽然难以识别,但是我们人眼仔细看看还是可以分辨的,如果验证码做的比较工整,那么程序也就非常容易识别出来了,如此一来验证码也就形同虚设。专业的解释验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机和人的公共全自动程序。可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试。
那么为啥要验证?验证的是啥
在没有验证码的时代,想要在论坛上发帖,只需轻轻敲一下回车键。然而,这也给恶作剧者和黑客提供了同样的便捷,他们通过编写大量、重复编写信息的程序,伪装成人类用户,肆无忌惮地朝网络上倾斜大量的、无意义的“僵尸”信息,垃圾邮件、垃圾广告、垃圾评论到处乱飞。论坛被灌水,有用的信息很快会被淹没,很多网站的正常运营遭到破坏。除此之外,还有数之不尽的程序机器人使用不断尝试的方法恶意破解密码、恶意刷票,从中获取非法的利益。
网站制作中经常会遇到验证码功能,那么到底是前端验证还是服务器端来验证?苏州网站制作在这里分享下个人观点,一是模拟用户动作,比如鼠标点击、字符输入,好处是对灌水者来说屏蔽了技术细节,只关注需要做什么操作。对于这种流派,理论上滑动解锁也是可以模拟的。
二是直接post数据,会事先抓包分析好需要的参数,然后直接向服务器提交。对于这种流派,它只关注最终的提交数据,之前有没有滑动解锁是完全无影响的。逻辑上,纯客户端的验证再复杂也是无效的。最终提供验证的,其实是在服务端,客户端只是显示了一下验证码而已。JS完全是由客户端实现的,任何JS操作都可以被模拟,所以不能单纯用JS来实现验证码。
所以苏州网站建设个人认为,验证码真正的目的是为了安全性的考虑,那么真实有效的验证也应该在服务器端验证。应该是后台生成的验证码到前端显示,前端传输数据到后端进行验证,前端再根据后端的验证结果显示。当然大牛们可能要喷了,前端也有实力达到很高的安全性,不过小编还是习惯后端验证。