spray icon indicating copy to clipboard operation
spray copied to clipboard

增强golang请求库规避功能,imroc/req实现了伪造浏览器指纹、ja3 指纹等,可以考虑切换到这个库

Open irony0egoist opened this issue 6 months ago • 1 comments

req请求库 实现了伪造浏览器指纹(包括ja3 指纹)、多代理切换、debug便捷,模拟指纹直接增强爬虫能力,多种特性对可以增强扫描器规避能力

支持的指纹类型

方法列表:

SetTLSFingerprintChrome: 模拟 Chrome 浏览器指纹。 SetTLSFingerprintFirefox: 模拟 Firefox 浏览器指纹。 SetTLSFingerprintEdge: 模拟 Edge 浏览器指纹。 SetTLSFingerprintQQ: 模拟 QQ 浏览器指纹。 SetTLSFingerprintSafari: 模拟 Safari 浏览器指纹。 SetTLSFingerprint360: 模拟 360 浏览器指纹。 SetTLSFingerprintIOS: 模拟 IOS 指纹。 SetTLSFingerprintAndroid: 模拟 Android 指纹。 SetTLSFingerprintRandomized: 随机模拟指纹。

下面是官方的文档内容

伪装 HTTP 指纹?

我们如何伪装客户端的 HTTP 指纹,才能骗过服务端呢?

HTTP 指纹是由一系列特征构成的,服务端检查的特征越详细(反爬级别越高),伪装的难度就越高,当然如果我们把所有特征全都伪装了,那就一定就能骗过服务端了。

常见的一些特征:

User-Agent 的值。 Header 及其排列顺序。 TLS 指纹,也就是TLS 握手时,客户端发送 ClientHello 的特征。包含客户端所支持的加密套件列表及其排列顺序、客户端支持的TLS版本、压缩方式、TLS extensions 列表及其排列顺序等。 对于 HTTP2,还有更多额外可以检查的特征:

HTTP2 settings 帧中的值列表及其排列顺序。 HTTP2 WINDOW_UPDATE 帧的值。 HTTP2 Priority 帧列表及其排列顺序。 伪头(Pseudo-Header) 的顺序。 请求头及其排列顺序,以及 header 帧中 flag 与 priority 选项的值。 以上所有特征,在 req 中都可以轻松模拟,实现伪装成任何想要的浏览器客户端。

irony0egoist avatar Jun 12 '25 02:06 irony0egoist

默认使用的是fasthttp, 这个性能远远好于其他的http client库,如果有这个需求 我会新增一种client,在高安全要求的场景下使用

M09Ic avatar Jun 18 '25 06:06 M09Ic