当前位置: 首页 > 科技观察

为什么随机IP、随机UA也逃不掉被反爬虫的命运

时间:2023-03-12 10:01:25 科技观察

为什么随机IP和随机UA都逃不过被反爬虫的命运如果完全一样,就不会被网站发现。但其实还有一个东西叫做浏览器指纹,它不会随着你换IP或者User-Agent而改变。而且即使不用模拟浏览器,直接用Golang和Python,它们也有自己的指纹,而且每次请求它们的指纹都是固定的。只要网站发现有某个指纹的客户端持续高频率请求网站,就可以屏蔽你。你好像不太相信?让我证明给你看。现在,我准备一个隧道代理,如下图所示:然后,我们打开一个网站:https://ja3er.com/json。当你用电脑浏览器打开它时,它是这样的:无论你怎么刷新网页,上面的字符串都不会改变。现在,我用Python请求这个页面,看到的内容如下图所示:大家可以看到,虽然我用的是隧道代理,但是每次请求的IP都不一样,但是这个网站返回的内容总是同的。所以如果这不是一个测试网站,而是一个加了这个检测机制的网站,那么它很容易就能把我拉黑。这种检测算法称为JA3算法。官网对该算法的介绍信息如下:JA3算法从SSL“ClientHello”中获取一组设置,如SSL/TLS版本、接受的密码套件、扩展列表、接受的椭圆曲线、椭圆曲线等。curveformats.JA3算法收集SSL请求中的信息,包括但不限于SSL/TLS版本、CipherSuites数量、浏览器扩展列表、椭圆曲线等一系列参数组合生成指纹字符串。也许在这些参数中,你和一些人拥有相同数量的密码套件,你和其他人拥有相同数量的浏览器扩展,你和其他人拥有相同的TLS版本号……但是那些拥有所有相同参数的人,只是很少。而在这极少数的人群中,这些人同时访问同一个网站的可能性就更小了。所以网站采用了JA3算法,可以近似得出,在一段时间内,连续发出相同指纹串的请求,很大概率来自同一个人。JA3算法的三位作者之一JohnAlthouse写了一篇文章介绍浏览器指纹识别和JA3算法:TLSFingerprintingwithJA3andJA3S|通过JohnAlthouse|销售人员工程[1]。有兴趣的同学可以看看。但我们说魔高一尺,道高一尺。JA3算法真的无懈可击吗?事实上,它不是。仍然有办法绕过它。请期待我的下一篇文章。P.S.:科普一下小知识。在日常生活中,我们经常听到有人说道高一尺,魔高一尺,也经常听到有人说魔高一尺,道高一尺。脚。那么这两个句子哪个是正确的,在什么情况下应该使用哪个呢?其实,以道高一尺,魔高一尺为例,就是说道非常厉害,道高一尺。产生的力量,妖魔需要上一脚才能抵消。通俗地说,就是巨人走一步,普通人要追上十步。同理,魔高一尺,道高一尺,表示魔高很厉害,法术产生的力量上升一尺,道也需要上升一只脚抵消它。但是在我们日常生活中,很多人认为魔高一尺,道高一尺,也就是说魔高一尺,道高一尺,所以魔永远追不上道。这种理解是错误的,这些人只是颠倒了意思。参考文献[1]TLSFingerprintingwithJA3andJA3S|通过JohnAlthouse|SalesforceEngineering:https://engineering.salesforce.com/tls-fingerprinting-with-ja3-and-ja3s-247362855967本文转载自微信公众号《暗码》,可通过以下二维码关注。转载本文请联系Code公众号。