一、什么是验证码? CAPTCHA是(全自动区分计算机和人类的图灵测试)的简称,是用于区分计算机和人类的一种程序算法,这种程序必须能生成并评价人类能很容易通过但计算机却通不过的测试。 像我们平时最常遇到的,就是基于图片的验证码。这类图片验证码通常包含的,都是些易于用户识别简单的验证信息。如下图所示。用户必须准确的识别图像内的字符,并以此作为人机验证的答案,方可通过验证码的人机测试。相反如果验证码填写错误,那么验证码字符将会自动刷新并更换一组新的验证字符,直到用户能够填写正确的验证字符为止。
二、验证码的重要性 1. 防止与认证相关的攻击行为 以下列举的是一些较易受到暴力攻击的点。例如: 登录:一旦缺少验证码的保护,攻击者则很可能通过暴力破解的方式非法接管用户账户。 忘记密码:如果网络应用程序使用详细消息响应帐户存在或不存在,那么攻击者则可以进行用户名的枚举。 注册:程序批量创建垃圾账户。此外还可以进行用户名的枚举。(正常情况下没有应用程序会允许用户,同时注册两个相同用户名的账号)
2. 避免垃圾邮件和DOS 我们知道很多网站都有提交表单的功能,并需要由站点管理员审核通过。例如:会员申请,联系我们,反馈表,调查表等。这些功能都需要验证码的保护,如果不加以防护那么将会导致以下情况的出现: 3. 保护数据挖掘机器人 三、验证码为什么能被绕过? 验证码被绕过,有以下两个原因: 在以下的内容,我将会带大家认识到这两个问题所在。以及如何解决这些问题,建立更为安全的人机验证。 |