
Python
如果是纯HTTP请求,确实无法实现这一目标,但如果是HTTPS请求,则有可行的方法。虽然无法做到完全精准的识别,但可以通过特定技术区分由
Python、Postman等工具直接发起的请求。这项技术被称为ja3/ja3s,其核心原理是:不同的TLS
客户端在握手过程中发送的ClientHello数据包具有独特的特征,例如协议版本、支持的加密算法列表、扩展字段中的类型值、椭圆曲线及其格式等信息。这些特征组合起来可以生成一个唯一的哈希值,作为该TLS
客户端的指纹。这些信息通常由
客户端的加密套件决定,修改难度较大。像
Chrome这样的主流浏览器,其ja3(s)指纹已被广泛记录且相对稳定。因此,通过收集并维护一份可信的白名单,可以有效识别出非标准
客户端。即使在
Python中尝试调整加密算法列表,也只能生成一个新的指纹,而难以模仿已知的、具有良好声誉的浏览器指纹(如
Chrome)。这种方法主要针对直接用
Python发起的HTTPS请求有效。如果改用undetected-
Chromedriver等工具操作真实浏览器,则生成的指纹会与浏览器一致,从而绕过检测。然而,相比直接使用
Python发起请求,这种方式成本更高、复杂度更大。尽管这种方案无法完全杜绝非正常请求,但能够显著提升攻击者的实施难度,从而有效过滤掉大部分自动化请求。