验证码(CAPTCHA)是Completely Automated Public Turing Test to Tell Computers and Humans Apart (全自动区分计算机和人类的图灵测试)的简称。 CAPTCHA的目的是区分计算机和人类,人类很容易通过但计算机却很难通过。
最常见的验证码,就是一张图片,需要人工输入图片上面的数字或字符。通常图片上会添加一些干扰因素,如不同的文字大小、颜色、字体、倾斜、条纹等,以增加软件OCR识别的难度。
这里,验证码可以起到防止软件自动登录或暴力破解的作用,这也是最常见的一种作用。实际上,除了能够防止软件尝试自动登录外,验证码还可以起到更多不同的作用。
在Form表单的提交处设置验证码,可以起到业务安全上的人工确认的作用,能够防止软件自动提交,能够防止CSRF(跨站请求伪造)攻击。当然,Form中的验证码通常使用hidden属性的随机码代替,基本可以达到同样防止CSRF攻击的效果。
在电商饥饿营销模式的抢购环节,设置一些趣味验证码,除了防止黄牛使用软件抢购之外,还可以起到稍微延长一点交易时间,错峰并发,减轻服务器负载的作用,另外,所设置的趣味验证码,还能够成为粉丝之间的话题进行交流,让相应的关键词在网络上保持一定的热度,起到品牌传播的效果。
验证码的形式,除了上述几种,还可以采用图片、音频、视频、广告、适用于专业论坛的专业问题(如物理、化学、天文、地理、编程、微积分、变换) 等多种形式。
附:各种验证码的破解情况参考:http://caca.zoy.org/wiki/PWNtcha