用过12306的魔性验证码之后,一直对验证码有种厌恶,感觉验证码就是我完成目标的绊脚石。
但是前段时间在做一个项目时,有一天凌晨网站被黑客攻击,第二天上班被告知,给用户发短信的好几万花完了!哪里出问题了!?
原来是黑客在我们的注册页写了一个不断填写手机号获取手机验证码的脚本。获取手机验证码之前,注册页没有让用户填写验证码,不能判断填写的是人还是机器。这个脚本在短时间内不断循环,不断请求手机验证码,服务端不断发短信,短短几十分钟,短信发完,钱没了。
在这件事情发生之后,我才开始意识到,原来那么讨人厌的验证码却起着大大的作用。于是我就开始思考验证码是什么,用在哪,有什么用处。
一、验证码是什么
验证码通过让用户输入图中内容或做某种操作,区分用户是人还是机器人。验证码能有效防止机器人进行身份欺骗,对服务器进行攻击或写入垃圾数据,是种安全且成本低的验证方法。
二、验证码用在哪
1.登录
登录时验证,可防止机器人不断输入无效的账号密码进行登录,导致服务器访问压力过大。
为了保证用户体验,目前大部分网站首次登录时都无需验证的,要是用户登录多次后仍没登录成功,此时需要用户验证自己是人还是机器。
比如,刚打开的JD登录界面:
登录多次不成功后,需要验证:
2.注册
现在注册已经不像很久以前填几个数据就能完成注册了。
现在注册需要做身份的唯一验证,比如绑定手机号/邮箱/微信号/QQ号等
添加身份验证可以有效防止一个用户注册多个帐号的情况,如果一个用户注册多个账户会导致系统存有太多无效账户,增加服务器压力。
注册验证有多种,目前比较常见的:
1)邮箱验证
邮箱验证一般是提交注册信息后,会显示通过邮件激活帐号。打开邮箱点击激活链接后,帐号才算注册成功。
2)手机验证
手机验证一般是输入手机号,然后给该手机号发送验证码。
若是验证码通过短信发送,则需要在发送短信验证码前,让用户验证人机,确定用户是人之后再给该手机发送短信验证码。若不加以识别会让不法分子有机可乘,写个脚本在你的注册页面不断获取短信验证码,导致服务器压力大,把发短信的钱花完。导致正常用户不能访问或获取不到验证码。
如下图,用手机注册,点击’发送验证码’后,屏幕会弹出一个验证,验证人机,验证成功后才给该手机号发送验证码。
3.评论回复
内容主导型产品大多有评论功能,但是如果评论功能不加以限制,很快有会有不法份子在产品内发布多条无效消息或不良广告。
根据平台属性,对评论会有三种限制方式。
1)论坛型产品,如新浪论坛评论,注重论坛活跃度,允许用户发表多条评论,此时一般会用到身份验证辨别人机。
2)知识性产品,如知乎,内容导向型产品,注重UGC的质量,会限制回复次数。
3)微信订阅号,对文章进行评论,需要公众号管理员筛选后才能展现在评论区,也是保证内容质量的一种方法。
三、验证码类别
1.输入
现在4个数字的验证码很容易用图像识别识破。所以需要有多种形式的验证码。
1)字符验证码:
2)运算验证码:
3)问题验证码:
2.滑动
通过滑动条把区块拖动到某个地方上:
3.点击选择
根据文字提示,进行选择。
1)如根据文字选图:
2)根据提示文字进行操作:
还有很多各种各样的验证码,本文只展示小部分~
四、验证码可以有其它方法替代吗
1.二维码验证
1)目前很多网站都采用二维码登录。因为现在移动端市场份额比pc端大得多,移动端APP一般默认登录状态,扫码入口也突出,通过扫码能验证用户身份唯一性,不需要用户填写登录信息,又能识别人机,是个快捷安全的方式。
二维码具有时效性,要是长时间不登录,二维码会失效:
2)同样二维码也可以用作注册。
大部分pc端网站用微信或QQ注册,会让用户扫二维码注册,但扫完之后再让用户填写注册信息,这么做等于绑定了用户的某个社交产品账户。
有的对账户信息没那么重要的产品,也会扫码立马完成注册的,后面再补充的个人信息,也能防止机器注册。
2.指纹验证
指纹验证比较普遍,常见于金融类产品,可用于开启锁屏或登录/支付验证。常用于验证是否本人,也能有效分辨人机。
3.刷脸识别
刷脸识别目前还不普遍,用于验证用户身份,也能有效分辨人机。
现在智能手机基本都有前置摄像头,刷脸能免去用户输入的操作,比较便捷,常用于开启手机锁屏,登录验证等。
免输入是验证的趋势,后面估计会有更多通过识别生理特征免输入的验证方法,能达到快速验证身份的效果。
pc端的验证方法有多样,推荐用能让用户快速完成的验证方法,不然太难的验证方法会让用户产生挫败感,对你产品的印象大打折扣。
通过验证,识别人机能大大减少机器给产品注入的无效数据,保障产品数据的有效性,减少不必要的损失。
本人简介:四口,网宿交互设计师。马甲线萌妹,喜欢设计、跑马、健身。
文章原链接:http://ued.chinanetcenter.com/?p=1683