这种滑块验证码,如何用 js 来模拟或者绕过?
http://ww3.sinaimg.cn/large/45aca4bbgw1f2gh4nl5lyj209701n3yd.jpg
这里之前有 V 友提问,不过好像没解决。
1
msputup 2017-09-06 15:59:01 +08:00 1
这里有行为判断的。
你在滑动的时候,会实时提交服务器进行判断,包括对你的环境等,如果判断你不是人或者不确定,会给你一个点击验证码的,淘宝这个有点难度了的,你可以先了解下极验,这个 v2 里有人破解过。 |
4
zulwfryk 2017-09-06 16:08:53 +08:00
No fucking way.
|
6
noe132 2017-09-06 16:32:42 +08:00 1
行为判断+1。
而且一般会有深度学习来进行分类。 但也不是无解,一般来说就是个鼠标轨迹,只要你能模拟出真实用户的鼠标轨迹就能过了 |
7
moult 2017-09-06 16:41:00 +08:00 via iPhone 1
这类验证码,只要能阅读一遍前端的逻辑,基本是很好破解的,其实最大的矛盾就是代码压缩混淆之后难以阅读。
做后端的都明白,前段发出的所有 http 请求都是不可信的。 举个例子,最基本的一个验证,就是看滑动的轨迹,鼠标滑的 Y 肯定会有少许上下浮动,但是机器滑的 Y 很固定。 |
8
cszhiyue 2017-09-06 16:56:37 +08:00
gan
|
9
mhycy 2017-09-06 17:07:04 +08:00 1
这类验证码我折腾过。
大致思路: 首先验证码的图片是乱序切片,切片还原成实际的位图需要逆向工程抽出部分逻辑 获得图片以后那么那个小滑块的分片也有了,依据特定体积灰度化后切片判断,即可判断 X 轴的具体坐标 以上事情 150 行以内 python 剩下就是难点,这类验证码看上去是一个 X 轴坐标的判断,而实际上正如楼上所说的,是鼠标轨迹的行为判断。 鼠标轨迹除了 XY 轴坐标以外,还有一个很重要的参数——时间 结合时间以后可以得知鼠标移动过程中的加速度,这也是判断是否为人类用户的基准之一。 可以试试生成一个拥有圆润加速度曲线的鼠标轨迹。。。 这事完了之后就剩下只需要应付数天一变化的轨迹加密算法了。。。 (这事怎么想都是模拟点击比较简单) |
10
mchl 2017-09-06 17:16:12 +08:00 1
这种验证码应该会用到 Event.isTrusted,用 js 无法作弊
|
11
standbill 2017-09-06 17:24:35 +08:00 1
手机端滑动,有 touch 事件。电脑端有 mousedown mouseup。
getconputedStyle,可以获得计算属性。 |