图形验证码安全

图形验证码安全目录图形验证码图形验证码的作用和原理图形验证码的分类图形验证码的验证过程图形验证码的安全问题静态图形验证码的激活成功教程利用Python脚本激活成功教程静态图形验证码图形验证码我们经常在登录app或者网页的时候,都会需要我们输入图形验证码上的内容,以验证登录。有些是纯数字的图形验证码,有些是字母和数字,有些是图案,有些是数学表达式……不同的网站,采用的图形验证码的形式也…

大家好,又见面了,我是你们的朋友全栈君。

目录

图形验证码

图形验证码的作用和原理

图形验证码的分类

图形验证码的验证过程

图形验证码的安全问题

静态图形验证码的激活成功教程

利用Python脚本激活成功教程静态图形验证码


图形验证码

我们经常在登录app或者网页的时候,都会需要我们输入图形验证码上的内容,以验证登录。有些是纯数字的图形验证码,有些是字母和数字,有些是图案,有些是数学表达式……不同的网站,采用的图形验证码的形式也不一样。那么,图形验证码到底是什么呢?

图形验证码是验证码的一种。验证码(CAPTCHA)是 “Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写,是一种区分用户是计算机还是人的公共全自动程序。

图形验证码的作用和原理

作用:图形验证码的主要作用是强制进行人机交互,以此来抵御机器自动化攻击,可以防止恶意激活成功教程密码、刷票、论坛灌水,有效防止黑客对某一个特定注册用户用特定程序暴力激活成功教程进行不断的登陆尝试。

原理:图形验证码的问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算机无法解答CAPTCHA的问题,所以回答出问题的用户就可以被认为是人类。

图形验证码的分类

图形验证码是现在大多数网站登录通行的方式。不同的网站,由于其安全级别不一样,网站开发人员掌握的技术不一样,使用的图形验证码的种类也不一样。大体上,图形验证码可以分为以下几类:

  • 传统图形验证码
  • 广告型的图形验证码
  • 滑动验证码
  • 图标选择与行为辅助验证码
  • 点击式的图文验证与行为辅助
  • 智能验证码
  • 语音验证码

传统图形验证码
主要是通过用户输入图片中的字母、数字、汉字等进行验证。
代表:大多数网站采用此种验证形式。
特点:简单易操作,人机交互性较好。但安全系数低,容易被激活成功教程。

图形验证码安全

广告型的图形验证码
有精美图案,识别文本也清晰可认,专注于广告。
代表:Solve Media,宇初验证码
特点:与其说是验证码,倒不如说是广告位。

图形验证码安全

滑动验证码
按要求将备选碎片滑动到正确的位置,或者滑动图标到末尾
代表:极验验证码
特点:操作简单,体验好。单一纬度,容易被逆向模拟,与移动端页面切换不兼容。

图形验证码安全
图标选择与行为辅助
给出一组图片,按要求点击其中指定的一张或者多张图片。
代表:点触验证码、Google新型验证码、12306验证码
特点:安全性强,对于图片、图库、技术要求高。

图形验证码安全

点击式的图文验证与行为辅助
通过文字提醒用户点击图中相同字或者相同图标的位置进行验证。
代表:淘宝新型验证码、点触验证码
特点:操作简单,体验良好,单一图片区域较大,激活成功教程难度大。

图形验证码安全图形验证码安全

智能验证码
通过行为特征、设备指纹、数据风控等技术,正常用户免验证,异常用户强制验证
代表:点触智能验证码,支付宝验证码
特点:简单便捷,区分人与机器、人与人、设备与设备

语音验证码
通过机器客服给你打电话,告诉你验证码
代表:滴滴验证码,易到验证码
特点:需要接听客服电话,体验较差,无法激活成功教程

图形验证码安全

图形验证码的验证过程

  • 我们访问一个网站的登录页面
  • 服务器端响应并创建一个新的Session ID,同时生成一个随机图形验证码,服务器端有该Sessino ID对应图形验证码的答案
  • 服务器端将该Session ID和图形验证码发送给客户端
  • 客户端填写登录表单,并且填入该图形验证码的答案
  • 服务器端收到用户提交的登录数据,取出Session ID与图形验证码的答案,并且与服务器端相同Session ID的图形验证码答案做比较,如果相同,再判断提交表单的用户名,密码等其他信息。如果图形验证码错误,随即返回验证码错误

注意:这里需要注意的是,Session ID销毁的条件是用户提交的图形验证码和用户名密码等其他信息正确,即登录成功,或者是用户手动刷新验证码

图形验证码安全

图形验证码的安全问题

既然图形验证是用来抵御机器自动化攻击,防止恶意激活成功教程密码、刷票、论坛灌水,防止黑客攻击等威胁的一种手段。道高一尺魔高一丈,那么恶意用户肯定会想方设法去绕过或激活成功教程图形验证码,来达到其恶意的目的。图形验证码面临的安全问题来自多方面的,既有客户端的问题,也有服务器端的问题,也有验证码本身的技术问题。

客户端的安全问题

  1. 客户端生成验证码,验证码由客户端生成并且仅仅在客户端用验证
  2. 验证码输出在响应包中
  3. 验证码输出在cookie中

服务端的安全问题

  1. 验证码不过期,没有及时销毁Session ID会话导致验证码重复使用
  2. 没有进行非空判断
  3. 产生的验证码内容集内的答案非常有限,导致可以被制作成字典

验证码技术安全问题

比如现在很多类型的图形验证码已经可以通过技术手段识别绕过了,识别图形验证码是计算机科学里的一项重要课题,涉及到计算机图形学,机器学习,机器视觉,人工智能等高深领域。

静态图形验证码的激活成功教程

图片灰度化和图片二值化

传送门——> https://blog.csdn.net/qq_36119192/article/details/86012022

文字分隔

为了能识别出字符,需要对要识别的文字图图片进行分割,把每个字符作为单独的一个图片看待

图形验证码安全

标准化

对于部分特殊的验证码,需要对分割后的图片进行标准化处理,也就是说尽量把每个相同的字符都变成一样的格式,减少随机的程度,最简单的比如旋转还原,复杂点的比如扭曲还原等等

图形验证码安全

识别

这一步可以用很多种方法,最简单的就是模板对比,对每个出现过的字符进行处理后把点阵变成字符串,标明是什么字符后,通过字符串对比来判断相似度

图形验证码安全

最好的识别算法,就是神经网络,神经网络是一种模拟动物神经元工作模式的算法,神经网络有多种不同的结构,但是基本架构分为输入层隐含层输出层,输入和输出均为二进制。

图形验证码安全

利用Python脚本激活成功教程静态图形验证码

Python中有很多封装好的神经网络库,把特征值输入神经网络,再输入是对应的什么字符,也就是训练的过程,随着训练的进行,神经网络的内部结构会改变,逐渐向正确的答案靠拢。神经网络的优势是,对于扭曲的字符识别成功率非常高。另外神经网络在信息安全中还可以起到很多其他作用,比如识别恶意代码等等

未完待续。。。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159135.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Cover Letter 写作技巧[通俗易懂]

    Cover Letter 写作技巧[通俗易懂]CoverLetter写作技巧本文由清新电源原创,作者,转载请申请并注明出处:http://www.sztspi.com/archives/199096.html-by刘田宇老师感谢刘田宇老师的分享,致敬!觉得有用的话,欢迎一起讨论相互学习~投稿信(CoverLetter)是向学术科技期刊投稿时不可或缺的材料。往往只有一页的投稿信却能很大程度地决定稿件的“生死”。投稿信的…

  • 小白都可以操作2021版(Github的注册与使用,超详细)

    小白都可以操作2021版(Github的注册与使用,超详细)作为一个学习IT的人,学习一点开源的社区是必须的,下面我们就来说说,IT中最大的开源交友社区github。废话不多说来看看

  • 基于1DCNN(一维卷积神经网络)的机械振动故障诊断

    基于1DCNN(一维卷积神经网络)的机械振动故障诊断基于1DCNN(一维卷积神经网络)的机械振动故障诊断机械振动故障诊断最为经典的还是凯斯西储实验室的轴承故障诊断,开学一周了,上次改编鸢尾花分类的代码可用,但是并不准确。开学一周重新改编了别人的一篇代码,亲测好用。不多咧咧直接放上去(基于Tensorflow2.0)(Spyder4软件上跑的)数据集时本人把凯西轴承实验驱动端内圈损坏尺寸0.14和0.21做的二分类,数据集中0代表的0.14而1代表的0.21具体看下面最后#-*-coding:utf-8-*-“””CreatedonTue

  • Vue非父子组件传值「建议收藏」

    Vue非父子组件传值「建议收藏」Vue非父子组件传值:事件总线$attrs/listeners

  • Android TextView行间距解析

    Android TextView行间距解析介绍Android中TextView的行间距设置方法,并分析每项设置对间距的影响。

    2022年10月25日
  • mina框架学习

      一、mina简介    mina框架是对nio进行的一个封装,可用于java的网络编程,包括TCP/IP和UTP/IP编程,主要屏蔽了网络通信的一些细节,对socket进行封装,并且是用nio的一个实现框架,mina的主要类如下: 1、IoService接口用于描述客户端和服务端的接口,子类有IoConnector(客户端)和IoAcceptor(服务端)。1….

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号