You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已提供cf_clearance cookie仍被Cloudflare识别为机器人的原因排查

Cloudflare识别脚本请求的机制及你的请求问题分析

一、Cloudflare识别非浏览器请求的核心检查点

Cloudflare靠多维度特征组合判断请求是否来自脚本,核心检查项包括:

  • TLS/HTTP握手特征:脚本(如requests库)的TLS加密套件优先级、握手流程和真实浏览器存在差异,Cloudflare能通过这些细节识别非浏览器请求。
  • 请求头的完整性与顺序:真实浏览器的请求头有固定顺序(比如Host通常排在最前),且会自动携带Accept-Encoding、Connection等头部;同时请求头的格式必须符合标准,比如sec-ch-ua的引号不能是HTML转义格式。
  • Cookie的一致性:Cookie不能重复传递,且cf_clearance这类Cookie和IP、User-Agent严格绑定,一旦UA或IP变更,旧的cf_clearance直接失效。
  • 会话上下文:真实访问会先加载页面、静态资源,再发送API请求,脚本直接跳转到API请求的行为会被判定为异常。
  • JavaScript执行能力:Cloudflare的人机验证依赖浏览器的JS执行环境,纯HTTP请求工具(如requests)无法通过这类验证。
  • 请求行为模式:脚本的请求频率、间隔比人类操作更规律、更频繁,容易触发速率限制或异常检测。

二、你的请求存在的具体问题

  1. 重复传递Cookie:你同时在cookies字典和headers的cookie字段中设置了__Host-next-auth.csrf-token,导致请求中出现重复Cookie,属于明显的非浏览器请求特征。
  2. 请求头格式错误:sec-ch-ua字段使用了HTML转义的",而真实浏览器发送的是普通双引号,格式错误会被Cloudflare直接识别。
  3. 缺失关键请求头:未携带Accept-Encoding(浏览器通常带gzip, deflate, br)、Connection: keep-alive等常规头部,请求特征不完整。
  4. cf_clearance可能失效:如果更换User-Agent后未重新获取对应UA的cf_clearance,这个Cookie会因绑定关系不匹配而失效。
  5. 缺少前置会话流程:真实访问会先GET /chat页面获取会话上下文,你的脚本直接发送POST请求,会话逻辑不完整。

三、修复方向

  • 移除重复Cookie:选择cookies字典或headers的cookie字段其中一种方式传递所有Cookie,不要同时使用。
  • 修正请求头格式:将sec-ch-ua中的"替换为普通双引号,例如'"Brave";v="111", "Not(A:Brand";v="8", "Chromium";v="111"'。
  • 补充缺失请求头:添加Accept-Encoding: gzip, deflate, br、Connection: keep-alive等浏览器常用头部。
  • 重新获取有效cf_clearance:确保cf_clearance与当前IP、User-Agent匹配,可通过浏览器手动过验证后复制,或用Playwright、Selenium等支持JS渲染的工具自动获取。
  • 模拟完整会话:先发送GET请求访问https://chat.openai.com/chat,保存返回的Cookie后再发送POST请求,还原真实浏览器的访问流程。

内容的提问来源于stack exchange,提问作者Anm

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 21:47:03