背景
Cloudflare 5秒盾(5s盾)是一种常见的反爬虫机制,通过验证用户是否为真实浏览器来保护网站。本文通过实验验证了绕过 Cloudflare 5秒盾的关键参数。
测试环境
测试链接: https://nopecha.com/demo/cloudflare
通过 F12 开发者工具打开 Cookie,发现 cf_clearance 是用来校验 CF 盾是否通过的关键标识。
实验过程
初步猜想
假设: 在 A 浏览器获取到 cf_clearance 后,将其复制到 B 浏览器的 Cookie 中,B 浏览器是否可以直接绕过 CF 盾?
第一次验证:仅复制 cf_clearance
实验步骤:
- 打开火狐浏览器,访问测试网站
- 点击 5秒盾,等待验证通过,获取
cf_clearance - 打开谷歌浏览器,访问同一测试网站(不点击 5秒盾)
- 将火狐浏览器的
cf_clearance复制到谷歌浏览器的 Cookie 中 - 刷新页面
实验结果: ❌ 谷歌浏览器无法绕过 CF 盾
结论: 仅凭 cf_clearance 无法绕过验证,说明 Cloudflare 还结合了其他参数进行校验。
深入分析
基于第一次验证的结果,推测 Cloudflare 可能通过以下参数组合进行校验:
cf_clearanceCookie 值- User-Agent (UA) 头
- JA3 指纹
- IP 地址
第二次验证:cf_clearance + UA + IP
实验思路:
由于 JA3 指纹在谷歌浏览器和火狐浏览器中不同,本次验证先排除 JA3 指纹的影响,仅验证 cf_clearance + UA 头 + IP 地址的组合。
实验步骤:
- 在火狐浏览器中获取
cf_clearance(同第一次验证) - 在谷歌浏览器中:
- 复制火狐浏览器的
cf_clearance到 Cookie - 使用
User-Agent Switcher and Manager工具将 UA 头修改为火狐浏览器的 UA
- 复制火狐浏览器的
- 刷新页面
实验结果: ✅ 谷歌浏览器可以绕过 CF 盾
初步结论: 同一个 cf_clearance + 同一个 UA 头 + 同一个 IP 地址 + 不同 JA3 指纹 可以绕过 CF 盾。
第三次验证:不同 IP 地址
实验步骤:
- 在不同 IP 的两台电脑上分别打开浏览器
- 重复上述过程(复制
cf_clearance和 UA 头)
实验结果: ❌ 无法绕过 CF 盾
最终结论
经过多次验证,得出以下结论:
✅ 可以绕过的情况:
- 同一个
cf_clearance - 同一个 User-Agent (UA) 头
- 同一个 IP 地址
- 即使 JA3 指纹不同,也可以在不同浏览器中绕过
❌ 无法绕过的情况:
- IP 地址不同时,即使其他参数相同,也无法绕过
关键发现: Cloudflare 5秒盾的验证机制主要依赖于 cf_clearance、User-Agent 和 IP 地址的组合,而 JA3 指纹似乎不是必需的验证参数。
补充
特殊情况下的 JA3 指纹校验
虽然上述实验表明在常规情况下,Cloudflare 5秒盾主要依赖 cf_clearance、User-Agent 和 IP 地址的组合进行验证,但在以下特殊情况下,Cloudflare 仍会校验 JA3 等浏览器指纹:
高安全级别配置
- 网站管理员启用了 Cloudflare 的”高”或”最高”安全级别时,会启用更严格的指纹验证
- 包括 JA3、JA3S、TLS 指纹、HTTP/2 指纹等
异常流量检测
- 当检测到大量来自同一 IP 的请求时
- 当请求频率异常或行为模式可疑时
- Cloudflare 会启用额外的指纹校验作为二次验证
企业版/高级版功能
- Cloudflare 的企业版和部分高级套餐提供了更细粒度的指纹检测能力
- 可以配置基于 JA3、TLS 指纹等参数的访问控制规则