注意: 本文所述处理滑块验证码的方式与常规方法有所区别,并不局限于传统的以背景图与滑块图为操作基础的方法。
最近由音像与数字出版协会主办开展的2020游戏十强投票活动正火热进行中。在处理自动化投票的过程中,我遇到了一个特别的滑块验证码环节,这让我回想起那些挑战技术难关的时刻。
一、网站分析
投票网址:2020top10..cn
打开网站后,除了常规的投票选项外,还需填写姓名、手机号、邮箱等信息。对此,我略感困惑——音像与数字出版协会,您这是要验证吗?难道技术上不能更先进些,比如采用微信授权登录,这样即使有刷票行为,也更容易追溯来源。
尽管对技术实现方式有所疑问,但我们的关注点还是集中在如何自动化处理这个验证过程上。
二、独特的canvas滑块验证码
1. 背景canvas:
- 填写的姓名等个人信息,为了仿造真实情况,应当基于百家姓等数据生成。
2. 滑块canvas:
- 通过颜色反转技术,我们可以更轻松地识别出滑块的像素位置。即寻找有像素的最小距离,从而确定滑动的位置。
三、验证流程详解
1. 下载滑块canvas:
2. 识别滑块位置:
- 找到x轴上的最小位置后,就可以确定滑块应该滑动的距离。在最终结果中减去10个像素值是基于实际测试得出的修正值,以应对实际滑动时的偏差。
3. 完成最后步骤:
- 在完成上述步骤后,我们便可以通过自动化操作来绕过该滑块验证码环节,并继续进行后续的操作或投票行为。