Skip to content

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

Description

@irony0egoist

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 中都可以轻松模拟,实现伪装成任何想要的浏览器客户端。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions