4.7.3 验证码带来的困惑

1.用户操作的额外负担

据统计,大多数用户都需要1~3次才能够登录成功,70%左右的原因是验证码出错。不难看出,验证码不仅在操作上增加了用户的额外负担,也大大增加了出错的几率。对于目的明确的任务型用户来讲,即使失败,也往往不得不多次尝试输入,但这也将严重损耗用户的耐心。对于非必要的用户,那么极有可能直接放弃操作,导致用户登录率等的降低,因此应该尽量减少不必要的验证码。

从验证码的出发点来看,是为了防止短时间反复的多次尝试,但对于真正的用户来讲,只要知道正确的密码,就不会出现反复尝试,因此验证码就显得不是那么必要。如果能够区分真实用户跟机器的差别,那么可以只在怀疑是恶意程序时才要求输入验证码,就可以简化用户的操作,降低出错率。区分的主要指标就是是否在短时间内多次出现尝试输入,且均失败的情况,因为程序基本不可能在几次之内就猜对密码,而知道密码的真实用户出现多次失误几率也非常小。目前大部分网站都将次数定在3~5次,当超过指定次数时,要求输入验证码,以减少网站被恶意攻击的风险[1]

Gmail在第一次登录的时候,并不要求输入验证码,但多次输入出错时,就会增加验证码的输入,起到了减少用户负担和防止恶意程序的双重效果(见图4-66)。

相反的,现在有些网站将验证码看成网站不可或缺的元素,甚至达到了滥用的程度。不管是登录、注册、提交、收藏等操作时,都要求用户输入验证码。尤其当用户已成功登录(即用户身份已被确认)、未发生多次反复“可疑”操作时,都不应该使用验证码来增加用户的额外负担。如阿里旺旺在每次添加好友时都会要求输入验证码,甚至是单次精确添加好友时,使操作过于复杂(见图4-67)。

figure_0129_0192

figure_0129_0193

图 4-66

figure_0129_0194

图 4-67

2.验证码很难辨认

随着恶意程序的不断升级,部分程序已经开始采用文字识别技术,自动识别图片验证码中的文字,破坏验证码的作用,因此有些网站通过背景干扰纹、字体的扭曲等不同方式增加验证码的识别难度。但同样的,这也增加了用户的识别难度。再加上数字“1”和字母“l”、数字“0”和大写字母“O”,或者一些字母的大小写本身就很难区分,直接导致用户出错率提升,让登录等操作变得更加痛苦。

因此如何增加程序对验证码的自动识别难度,同时又增加人眼识别的正确性,除了在用户输入前提供“重选一张”的替补方案,在出错后自动提供新的验证码之外,更应该在验证码本身设计上下功夫,如减少难以区分的那些数字或字母、或者生僻的文字等的出现几率等。

3.及时地反馈,避免信息丢失

相信大家都碰到过这样恼火的情况,完成前面的所有输入操作后,却因为最后的验证码错误功亏一篑,导致信息丢失需要重新填写。

这种设计非常不合理,很多用户没有耐心继续填写,直接流失。目前较好的改进方案主要是对验证码进行及时的验证,并反馈用户验证是否成功,如果错误直接在当前窗口完成,不影响之前所有操作的结果(见图4-68)。

figure_0130_0195

图 4-68

4.减少切换输入法

在输入验证码时,经常需要切换输入法,包括中英文切换、大小写切换等,会影响输入的效率和正确率。

百度空间的评论功能在输入验证码时,将屏蔽当前输入法,自动调用英文输入法,避免了用户的切换操作。

Google等在验证码的设计中不区分大小写,减少了用户的切换,从而提高效率,减少出错率。支付宝等只用了数字验证,在输入上更加方便(见图4-69)。

figure_0130_0196

图 4-69

[1]QQ除了这种情况外,当在异地登录时,也会要求您输入验证码,并确认是否正确,以防止QQ号码被盗。