术语表
TLS 指纹
根据客户端建立 TLS 连接的方式算出的标识——ClientHello 里的密码套件、扩展及其排列顺序(TLS fingerprint)。
也称:JA3, JA4。
在任何 HTTP 请求出现之前,客户端会先发出 ClientHello 来开启 TLS 连接:它支持的协议版本、提供的密码套件、声明的扩展、接受的椭圆曲线,以及——很关键——它把这些列出来的顺序。不同的 TLS 库在这些地方的选择并不相同,因此对这个结构做哈希,就得到了发起连接那个软件的指纹。JA3 及其后继 JA4 是通行的格式。它是在网络边缘、浏览器之下采集的,所以页面里跑的任何东西都既改不了它,也看不到它。
它的实际用途是抓出那些自称并非其所是的客户端:一个用通用 HTTP 库、却发着 Chrome user-agent 的脚本,其 TLS 指纹是任何一个 Chrome 都从未产生过的,这个错配足以定论。Argus 不改动 TLS 指纹,也不宣称自己改了——它自带一份真正的 Chromium 构建,所以握手就是真正的 Chromium 握手,和它自称的那个浏览器对得上。这是要点而非短板,也在很大程度上解释了为什么从真实浏览器采集能过,而无头客户端过不去,这一点在数据采集页面上有说明。
术语表里的更多条目
Cookie 注入
把一份保存好的 Cookie 写进一个全新的浏览器环境,让它一打开就已经是登录状态,无需输入密码(cookie injection)。
无头浏览器
在没有可见窗口的情况下运行的真实浏览器引擎,通常受自动化驱动。大批量跑起来便宜,也越来越容易被网站认出来(headless browser)。
无浏览器采集
用普通 HTTP 直接向网站自己的列表接口取数,全程不启动浏览器——快、便宜,且只在数据本就结构化的地方可行(browserless collection)。
验证码代解
把一次挑战交给第三方服务去作答。偶尔有用,但远不能替代「不触发这次挑战」(CAPTCHA solving)。
时区与地理位置伪装
让浏览器报出与会话自称所在地相符的时钟——有时还有坐标——而不是机器实际所在地的(timezone spoofing)。
防关联浏览器
为了在一台机器上运行多个彼此独立的身份而造的浏览器,每个身份都有自己的存储、自己的设备特征和自己的网络出口(anti-detect browser)。
所有条目都列在术语表索引上。