啃过很多难啃的骨头,没想到居然还有这么难啃的骨头。
研究了这网站许久,换了无数种思路,都失败而终。
下面就将把我踩过的坑,一一道来。
花了几天,把JS全部读完,将所有方法全部翻译。
JS里面,有效验鼠标轨迹点击事件的方法,有检测Selenium等自动化工具的方法,有检测无头浏览器的方法,有效验浏览器内核与UA信息是否匹配的方法(通过浏览器JS支持的特有属性方法检测),有获取浏览器指纹的方法(帆布指纹+插件信息+内核信息+局域网IP+是否支持媒体流等浏览器支持功能的组合),最后还有时间效验,这里所说的时间效验是指的每个方法互相调用的时间差及两次ajax请求的时间差,记忆模糊,暂时只能记起这么多。
上面说了一大堆的效验方法,是不是感觉已经很头疼了?
没错,所以我将sensor_data参数复制下来,简单粗暴的改了里面几个关键值(通过原JS直接运算的),你以为能成功?
哈哈哈,也就只能撑十几分钟摆了,长期大规模的请求肯定GG,网上所谓的破解文章,也仅做到此步就止步了。
我继续尝试,HOOK浏览器请求,强行随机(通过原JS)改变浏览器指纹,进行sensor_data值的计算,并POST请求,通过这种尝试,一个sensor_data生成的多个CK可以一共跑20分钟左右,然后封10-30分钟,但跑了几个小时,一样也挂了,无论怎样换指纹,换参数也无济于事。
不撞南墙不回头的我,继续研究,这下可好,发现一直研究的sensor_data的加密请求,原来只是冰山一角,因为我发现了一共三家企业的相关部署文件,分别是国外某CDN服务商做的反爬系统(sensor_data也就这家的杰作,后台有AI数据分析),国外某设计软件的扛把子公司做的用户行为分析系统,国外某搜索引擎做的验证系统,加上sensor_data的算法几乎是每月一更新,头顶顿时一股凉意。
事已至此,并未放弃,未完,待续。