行为式验证码小侃,滑块验证码详解

验证码

行为式验证码

全自动区分计算机和人类的图灵测试
2002年,路易斯在卡内基梅隆第一次提出了CAPTCHA(验证码)这样一个程序概念。该程序是指,向请求的发起方提出问题,能正确回答的即是人类,反之则为机器。
对于验证码,人们有一个理想预期,就是假设:提出的问题要容易被人类解答,并且让机器无法解答。但是随着技术不断的发展,尤其是图像识别技术,曾今机器无法解决的问题,一个一个被攻克,所以验证码技术在攻防双方的较量中一直在快速发展。


先看下传统验证码,这张图可能暴露了你的网龄

在这里插入图片描述


这是来自xx安全业务的行为式验证码
在这里插入图片描述


    验证码大致遵循这样的规则,越复杂相对越安全,但用户体验越低,比如看看这几种验证方式。

问问

中庸之道这里也适用~


滑块验证码

迭代样式
    滑块验证码是最常见的行为式验证码,广泛出现在登陆,绑定,防刷等场景中,并且在近几年在技术也经历了多次迭代。举例常见的三个版本。

样式一 最简单的,从头拉到尾
在这里插入图片描述

样式二 相对复杂的,三张图(背景图,有缺口的背景图,小滑块)
在这里插入图片描述

样式三 当前最新的,两张图 (缺口背景图,小滑块)
在这里插入图片描述

突破方式

前两种相对简单
样式一
使用selenium或者其他模拟方式,找到滑块拉到最右边即可

样式二
两张图都是 24bit-color,并且在大小和颜色都是一样的,可以理解为除了滑块区域不同,其他地方都是一张图。
所以,我们就可以通过遍历像素点的方法,找到最左上角颜色不一致的点B,就是滑块要滑动的终点(计算滑块左上角点A到B的距离,再通过样式一的方法拖动滑块)
这里可以执行js隐藏对应上层或者下层的背景图 document.querySelector('.geetest_canvas_bg.geetest_absolute').style.display = 'block'
样式三
背景图是24bit-color,缺口图是32bit-color
所以,上面的方法不适用了。


解题步骤在这里
在这里插入图片描述

以XX平台为例(此处提供代码并不能完成破解,只是提供交流思路)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


主要解决的问题:
1、计算出滑动距离
在这里插入图片描述
在这里插入图片描述

2、控制滑块如何滑动
先加速再减速 L=V0t + 1/2at2(是不是很熟悉的公式呢)

其它验证码

其他验证码也有一点介绍
在这里插入图片描述


在这里插入图片描述

目前大多数平台提供的验证码在经过大量实际调用场景后,随机仅仅是滑块出现的位置是随机的,但上述的背景图片基本是固定的图片库,所以经过大量的访问是可以拿到所有的图片,再针对不同图片进行不同的匹配策略,但是成本较高,这里不做说明。

写在做后,验证码最终的目的是用来区别人和机器,所以人工打码虽然成本高,但是也的确最为无赖,毕竟真的是人在背后。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值