让开发头疼的“验证码”有什么用?_程序开发为什么要使用验证码-程序员宅基地

技术标签: 技术干货  业务安全  网络  安全  大数据  

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

 

undefined

 

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

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

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

 

验证码的作用:

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

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

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

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

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

 

关于验证码的探索

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

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

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

 

关联阅读:

让程序员互相伤害的“验证码”是什么?

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/dingxiangtech/article/details/107384111

智能推荐

echarts柱状图自定义hover上去的显示内容_自定义柱状图悬浮展示内容echarts-程序员宅基地

文章浏览阅读1.2w次,点赞2次,收藏14次。在option->toottip对象里面加formatter函数,代码如下:注意:参数params是series数组里面的每一个对象,params[i].data是返回具体的数值,如params[0].data依次返回11,22,33,44,55,66,77,88,99,78,78,199详情请查看官方文档:https://www.echartsjs.com/zh/option.html..._自定义柱状图悬浮展示内容echarts

IC基础知识(六)SV中default input #1 output #1的解释_default input #1step-程序员宅基地

文章浏览阅读4.7k次,点赞7次,收藏49次。SV中default input #1 output #1的解释_default input #1step

DataFrame基础知识-程序员宅基地

文章浏览阅读4.2k次,点赞11次,收藏13次。DataFrame:可以看出分布式Row对象的集合,在二维表数据集的每一列都带有名称和类型,这些就是schema(元数据)Select:col:某一列,as:重命名 filter:过滤groupBy() ,对记录进行分组sort排序。,并且可以从很多数据源中创建,如结构化文件、外部数据库、Hive表等数据源。DataFrame提供了两种语法风格,1 DSL风格语法,2 SQL语法风格。DataFrame:除了提供比RDD更丰富的算子外,更重要的特点是。,DataFrame可以完成RDD的绝大多数功能。_dataframe

Linux系统产生随机数/dev/random 和 /dev/urandom_/dev/random 安全随机数-程序员宅基地

文章浏览阅读942次。1. 基本介绍    /dev/random和/dev/urandom是Linux系统中提供的随机伪设备,这两个设备的任务,是提供永不为空的随机字节数据流。很多解密程序与安全应用程序(如SSH Keys,SSL Keys等)需要它们提供的随机数据流。  这两个设备的差异在于:/dev/random的random pool依赖于系统中断,因此在系统的中断数不足时,/dev/random设备..._/dev/random 安全随机数

递归最佳实践_递归 翻译字典 最佳实践-程序员宅基地

文章浏览阅读273次。可能很多人在大一的时候,就已经接触了递归了,不过,我敢保证很多人初学者刚开始接触递归的时候,是一脸懵逼的,我当初也是,给我的感觉就是,递归太神奇了!可能也有一大部分人知道递归,也能看的懂递归,但在实际做题过程中,却不知道怎么使用,有时候还容易被递归给搞晕。也有好几个人来问我有没有快速掌握递归的捷径啊。说实话,哪来那么多捷径啊,不过,我还是想写一篇文章,谈谈我的一些经验,或许,能够给你带来一些帮助..._递归 翻译字典 最佳实践

java库net2.0下载_.NET Framework各版本独立下载.NET Framework 3.5下载.NET Framework 2.0下载...-程序员宅基地

文章浏览阅读377次。Microsoft.NETFramework 4.5(在线安装 x86_x64)下载地址:点击这里!----------------------------------------------------------------------分割线---------------------------------------------------------------------------..._java的net包在哪下

随便推点

推荐一款IDEA插件Grep Console_grepconsole idea社区版2021看不清-程序员宅基地

文章浏览阅读2.0k次。话说,楼主之前9年多用的Java开发工具都是Eclipse,一直用着很不错。不过因为现在公司的小伙伴们大多都是用IDEA,所以逼迫自己一把,开始使用IDEA。真是不用不知道啊,IDEA真的是太好用了。以下我会整理一些IDEA使用的经验。Grep Console解决问题开发阶段,我们会经常看控制台打印的日志。但是不可能一行一行的一直盯着看吧。这时我们肯定会想到搜索功能,搜索后的效果是这个样子..._grepconsole idea社区版2021看不清

Kafka学习笔记-程序员宅基地

文章浏览阅读1.2k次。本文转载来自:https://www.cnblogs.com/qingyunzong/p/9004703.htmlKafka是Apache下的一个子项目,是一个高性能跨语言分布式发布/订阅消息队列系统,图展示了Kafka的相关术语以及之间的关系上图一个topic配置了3个partition。Partition1有两个offset:0和1。Partition2有4个offs..._kafka border.id=1 和等于1的区别

关于opencv读取图片,无法正常显示,窗口显示灰色的问题_opencv无法读取图片-程序员宅基地

文章浏览阅读1.3w次,点赞18次,收藏24次。本人刚开始学习OpenCV3,主要是跟着毛星云老师的《OpenCV3编程入门》进行学习,学习过程中遇到一些问题,希望能在这里跟大家分享,同时希望得到有效的解答。由于本人是个小白,有什么不对的地方,还望指教,谢谢!!话不多说,进入正题!——————————————————————————————————————————关于OpenCV3中读入图片后,显示为灰色的问题环境:OpenCV 3.4.1 +..._opencv无法读取图片

程序员专属情人节表白网站HTML+CSS+JavaScript-程序员宅基地

文章浏览阅读504次,点赞10次,收藏8次。网站程序方面:计划采用最新的网页编程语言HTML5+CSS3+JS程序语言完成网站的功能设计。并确保网站代码兼容目前市面上所有的主流浏览器,已达到打开后就能即时看到网站的效果。网站文件方面:网站系统文件种类包含:html网页结构文件、css网页样式文件、js网页特效文件、images网页图片文件;

JavaScript之表单验证-程序员宅基地

文章浏览阅读1.1w次,点赞30次,收藏211次。前言:我们这一次讲的表单验证运用了前面几篇文章说讲的的内容,比之前的要难一些,我会在代码里以注释的形式详细的讲解。目录一.简单的表单验证验证方式一:验证方式二:二.正则验证一.正则的规则 内容 次数二.正则的注意事项三.二级联动一.简单的表单验证验证方式一:<html><head> <meta charset="UTF-8"> <title>Title&..._表单验证

Springboot源码系列-程序员宅基地

文章浏览阅读244次。Springboot源码系列一、SpringApplication的构造方法springboot程序的一切都开始于main方法public static void main(String[] args) { SpringApplication.run(ZiyanApiApplication.class, args);}run方法中传入了两个参数一个是当前main方法的Class对象,一个是命令行的参数的数组,让我们来看看run方法中都做了哪些事情/** * Static helper

推荐文章

热门文章

相关标签