我想在我的PHP网站里加一个验证码,滑动那种

我想在我的PHP网站里加一个验证码,滑动那种,第1张

你也真敢想。

网页验证码一般是在后台生成一个验证码在后台生成好返回给网页显示,用户输入的信息与后端保存的信息再进行验证。

如果后端的信息返回到前端是已文字的形式,就起不到安全的作用了。

你的这个功能可以这样设计,但作用不大。我来说说我的思路吧

首先后端返回一个数字类型的验证码,前端获取数字行的验证用js+css组织实现特效。你在上图的黑色部分设定一个挡扳的html元素(这个元素距离左边的三角形滑动块的距离就是后端返回的数字),左边滑块滑动多少距离达这个隐藏区块,获取这个数值,保存下来。

pyppeteer 有提供鼠标滑动的方法,但是单独调用 pyppeteer 滑动方法是无法通过验证的,必须使滑动轨迹更加接近人工的方式才行。

这里我们先了解一下pyppeteer是如何实现滑动的

根据以上的4个方法组合就可以实现滑动。

如果滑块已经页面page中,则直接调用 pagehover(slide_id), 无需这么复杂

1找出 iframe 的css选择器 :iframe#sufei-dialog-content (你应该根据实际情况填写)

2在page中找到此 WebElement元素节点: iframe_element = await pageJ('iframe#sufei-dialog-content')

此时还 无法在 iframe_element 上调用hover() 函数,因为iframe_element此时是 ElementHandle Class,而我们需要的是Frame Class

3将ElementHandle Class强转成Frame Class :iframe =await iframe_elementcontentFrame()

完整的方法应该是:

其中x,y 是指移动到绝对横向,纵向坐标,options是一个字典,只有一个键steps,用来控制速度。

例如你想要鼠标向右移动500像素,则 x为当前横坐标 + 500,y为当前纵坐标不变。

当前的横坐标、纵坐标获取有些麻烦,网上也有人这样来滑动:

await pagemouse(10000,0) ,这样是指把鼠标横行移动到10000,纵向移动到零,滑动无法纵向移动,所以只能看到横行的移动效果。没有添加第三个参数,则默认一步完成 {'steps':1}

注意:这里的坐标和像素值是一致的,左上角为起点(0,0)

steps 是指分成几步来完成,steps越大,滑动速度越慢。(在源码中,steps是指移动到指定x,y 分段滑动的次数,但是每次启动滑动都会花费一定时间,可以认为steps是滑动的速度)

到现在,我们已经完成了滑动验证的功能,当然它还不够完善,但基本的功能已经齐全了,在下一节,介绍一下控制滑动轨迹,模拟人工滑动。

注意1:这里pyppeteer涉及到 page 与 iframe,peppeteer的功能是以frame为基础单位来实现的,page 的功能 iframe 都有,page 在执行函数时,会先调用 frame = selfmainFrame,然后在frame上执行功能。mainFrame就是最外面的那个Frame

注意2: mouse对象是page/mainFrame对象所独有的,在子frame中,也就是iframe 中不能调用mouse对象。

后续: pyppeteer 模拟人工滑动验证(二)

可能是网页卡了,或者触摸屏或者鼠标有问题,或者访问人数过多。

1、提示需要滑动验证码时,无法滑动,这是因为浏览器浏览网页的模式设置为“自适应”或“手机模式”导致的。

2、这种情况是因为网站不支持浏览器使用手机版导致的,所以必须将浏览器的UA标识切换(设置)到电脑版,网站会以电脑版展开,就可以滑动验证码了,大多数手机浏览器都会默认使用“手机版UA”,所以无法滑动。

思路如下:

使用canvas元素创建一个画布,用于显示原始和裁剪出来的滑块。

随机生成一个裁剪区域的位置和形状,可以是圆形或方形等。

使用canvas的clip()方法和drawImage()方法将裁剪区域从原始中复制到滑块画布上,并在原始上留下一个空白区域。

设置滑块画布的position为absolute,并添加鼠标事件监听器,用于控制滑块的移动。

当鼠标按下时,记录滑块的初始位置和鼠标的初始位置;当鼠标移动时,计算鼠标的偏移量,并更新滑块的left值;当鼠标松开时,检查滑块是否与空白区域对齐,如果是,则验证成功,否则验证失败。

没有代码能力建议直接第三方API

您好,感谢您使用网上车管所,并且感谢您的贴图。针对您的问题,非常有代表性。您的问题可能是在实名注册过程中工作人员激活的时候忘记同时修改用户状态和用户类型导致的。如果是这样,请原谅我们在初期投入使用中的失误以及不熟练,我们会在后面的业务办理中进一步改进。解决办法可能需要您重新跑一次车管所,请带上您本人的身份z,在车管所大厅找我们的工作人员修改用户状态和用户类型。感谢您的使用,对此给您带来的不便感到抱歉。

不知不觉 距离上次研究已经快三年 利用puppeteer破解极验的滑动验证 ,最近用puppeteer在做一些爬虫的工作,遇到了需要滑动验证的校验,于是毫不犹豫想起以前破解的经验,通过对比,emmm跟之前的有些差别,下面我们来分析一下。

这个滑动验证只存在两张图(如下图)

1 背景图(包含缺口)

2 滑块图

对比极验的滑动验证, 缺少完整背景图(不含缺口) ,这样我们就无法去通过对比背景图来获取滑动的距离了。

认真观察一下背景图,我们能不能从中获取到什么有用的信息来计算滑动距离呢?

于是, 我发现 背景图缺口 周围的白边。分析一下

1白边没有透明度。 (这个很重要,确保不会受到背景图的颜色影响)

2每次都是白边,颜色不会变,白边颜色值几乎相同。

3通过白边计算滑动距离。

其实市面上验证方式层出不穷,诸如点击出现文字、找到人物相同的等等,对于这些puppeteer基本束手无策(有知道怎么破解的可以分享下哈)。这篇文章更多出于学习分享,大家遇到什么验证问题可以来互相讨论学习一下或评论区留言。

1、打开苹果手机自带的浏览器。

2、随便打开一个需要滑动才可以通过的验证登录。

3、滑动验证是有两部分,下面滑块是可以用手滑动的,上面碎片拼图是不可以的,但是上面和下面是同时移动的。

4、通过移动下面的滑块来使得上面的碎片拼图和拼成一个完整的。

以上就是关于我想在我的PHP网站里加一个验证码,滑动那种全部的内容,包括:我想在我的PHP网站里加一个验证码,滑动那种、pyppeteer 模拟人工滑动验证(一)、中招报名登录的时候滑动照片验证滑动不了是怎么回事等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9775334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存