用户界面设计模式1.4表单:验证码
问题总结
应用程序验证的数据是真实的人而不是机器人提交的。
示例
用法
具有评论、注册或可以在网站上主动发布内容功能的网站,经常受到垃圾邮件机器人的攻击,这些垃圾邮件机器人发布的内容与通过电子邮件发送的邮件并无差别。垃圾邮件机器人的主要目的是创建和传播指向特定网站的链接,以提高http://google.com等搜索引擎上的网站搜索评级。这些垃圾邮件很少与网站主题有关,因此被归为垃圾邮件。
为了避免这种垃圾邮件,而引入了验证码,提出验证码的想法是为了创造出一种能区分真人和自动机器人的方法。
当你的网页应用程序受到试图通过你的网站发布垃圾内容的恶意网络机器人时使用。
当用户保护你的网站免受自动机器人的攻击时使用。
当需要登录才能使用网站的发布内容功能时使用,包括注册过程。
解决方案
验证码最流行的形式是内部含有字母和数字的图像。提示用户在单独的表单字段中写出在图像中所读取的内容。为了防止垃圾邮件制造者使用光学字符识别1(OCR,Optical Character Recognition)软件读取图像中的内容,通过不同的方式处理图像,使得内容能够被人类可读,而电脑难以识别。
如果用户成功输入图像所显示的内容,他所编辑的内容就会被发布到网站上。否则,将不允许发布。多次尝试验证码文本这项操作是被允许的,因为人类对一些经过强处理的图像也是难以辨别的。
基本原理
验证码是“完全自动的区分计算机和人类的公共图灵测试2”的缩写。验证码背后的想法是将人与计算机区分开来,让用户执行计算机无法执行的操作。验证码是一种简单的图灵测试。
在光学字符识别扫描仪且人类可以识别中间有一条分界线。必须将人类的可读性放在第一位。实施验证码保护你的网站有一些其他的问题——视障用户,因为他们无法使用语音软件说出验证码所需验证的内容。
针对恶意垃圾邮件,还有其他形式的保护措施,提出诸如“什么是2+3”或者“什么是2加3”或者使用语音验证码等问题。
名词解释:
1.光学字符识别:OCR,Optical Character Recognition;指电子设备扫描,识别纸张上的文字,并将其转换成计算机文字的功能。
2.图灵测试:人类评估者会判断人与机器之间的自然语言对话,旨在产生类似人类的反应。评估者会意识到对话中的两个伙伴中的一个是机器,并且所有参与者将彼此分开。对话将仅限于纯文本通道,例如计算机键盘和屏幕,因此结果不依赖于机器将单词呈现为语音的能力。如果评估人员无法可靠地告诉人机,则说机器已通过测试。测试结果不依赖于对问题给出正确答案的能力,只取决于一个人的答案与人类给出的答案有多接近。