让开发头疼的“验证码”有什么用?

你是不是要经常输入验证码?登录网站时输完密码,要输入一个单词或者几个歪歪扭扭不怎么好辨认的字母,这个场景一定不陌生?有没有思考为什么要输入验证码?验证码有什么作用?

让开发头疼的“验证码”有什么用?_第1张图片

其实,验证码存在的最大意义,就是区分在页面上进行输入操作的是人还是机械化的代码编程。就像12306网站的验证码,它的“进化史”就是一部不断与黄牛和抢票软件“斗智斗勇”的历史,从一开始的简单数字、字母、加减法,到闪烁变形字母、干扰线变形字母,再到近些年不断优化的挑战人智商下限的图形验证码……

“确定我不是机器人?”没错,验证码英文叫做CAPTCHA,Completely Automated Public Turing Test to tell Computers and Humans Apart,由CMU的教授Luis von Ahn提出,翻译一下是“全自动区分计算机和人类的图灵测试”,能够防止软件被大量恶意注册,比如阻止在高峰节假日期间的购票被黄牛写一串代码就抢购一空。

到这里,你可能会说“我知道了为什么要输验证码,可是输验证码很无聊,输错了还要重输。”那你一定是不知道,验证码还有这些潜藏的作用啊!

验证码的作用:

1、为了防止机器冒充人类做暴力破解:暴力破解想想就恐怖,这关系每个用户的网络安全,现在很多网站、APP都绑定用户的银行账户,有很多内容还涉及到个人隐私,如果被不法分子暴力破解,那损失可就大了。

2、防止大规模在线注册滥用服务:很多机友肯定都很讨厌那些恶意注册灌水的,满满一屏全是恶意评论和广告,瞬间没有好心情;

3、防止滥用在线批量化操作:比如在投票的时候,有些恶意刷票软件就可以实现批量化投票功能,想想自己辛苦拉票,人家一键就搞定? 

4、防止自动发布:比如早些年黑客们写一串代码就肆无忌惮地朝网络上倾倒大量的、无意义的僵尸信息,垃圾邮件、垃圾广告、垃圾评论到处乱飞。污染了网络环境的同时,更有甚者被广告诈骗。

5、防止信息被大量采集聚合:互联网时代,最有价值的就是内容生产,精心创作的原创文章,一秒被爬取?肝颤啊。

关于验证码的探索

越来越复杂的验证码,虽然增加了安全性,但是终究还是给很多网友带来烦恼。有没有操作上很简单,但却能保障安全的验证码形式呢?

其实,关于这个问题也有人在不断研究升级中,比如顶象的智能无感验证,推出了无需验证即可判别使用者身份的验证体系,其原理其实也非常简单。风控引擎在用户尝试登陆或者做其他传统需要验证的操作行为前,就会对操作环境进行扫描,并对一些关键参数做分析,包括常用IP、地理位置、使用习惯、恶意特征、设备指纹等。基于大量模型和数据的分析,风控引擎便可以对用户身份做出一个预先的判断。如果风控引擎认为使用者是“好人”,便直接放行;如果判定为“机器”,则不予放行;如果存疑,便祭出验证码,您且滑一滑吧。这种方式对比上述的就相当的聪明和智能。

不要小看网站的这一枚小小的验证码,它可不是针对真正的用户,而是为了防止那些别有用心的人恶意注册和暴力破解(猜密码)的,目的是保障干净的网络环境和用户的安全,但是建议在方式上可以借鉴下某些安全厂商,比如上述提到的智能无感验证方式。

推荐阅读:

验证码是什么?
https://segmentfault.com/a/11...

你可能感兴趣的:(人工智能,安全,程序员)