概览
ChatGPT 工作模式的云浏览器使用 Web Bot Auth 对出站 HTTP 请求进行签名,使网站运营方能够验证请求确实来自 ChatGPT。
在 CDN 或防火墙中将云浏览器流量加入允许列表,有助于防止合法请求被阻止,同时保留你现有的安全控制。
消息签名的工作原理
云浏览器使用 HTTP Message Signatures 标准 RFC 9421 对请求进行身份验证。
每个请求都包含:
一个
Signature标头。一个
Signature-Input标头。一个设置为
"https://chatgpt.com"的Signature-Agent标头。
用于验证这些签名的公钥位于:
https://chatgpt.com/.well-known/http-message-signatures-directory
你的 CDN、防火墙或边缘服务可以检索公钥、验证签名,并确认请求来自 ChatGPT。
在 Akamai 中加入允许列表
Akamai 在其 Artificial Intelligence bots 类别中使用现有机器人名称 ChatGPT Agent 来识别云浏览器流量。
要允许此流量:
在你的 Akamai 安全配置中,打开相关安全策略。
选择机器人管理,然后选择自定义机器人类别。
在设置下,选择管理机器人类别。
添加新的机器人类别,并创建一个具有以下信息的机器人:
类型: Akamai-Defined
机器人名称: ChatGPT Agent
返回自定义机器人类别,并将新类别的操作设置为允许。
Akamai 会自动验证请求签名。无需自定义签名验证。
在 Cloudflare 中加入允许列表
Cloudflare 会在其 Bots and Agents 目录中将云浏览器流量识别为签名智能体。
现有标识符如下:
机器人标签:
chatgpt-agent检测 ID:
129220581
要允许此流量:
在 Cloudflare 仪表板中,打开安全 → WAF并创建自定义规则。
将规则表达式设置为机器人检测 ID 等于。
搜索 ChatGPT Operator 并选择检测 ID
129220581。将规则配置为允许或跳过与此检测 ID 匹配的请求。
保存并部署该规则。
Cloudflare 会自动验证请求签名。无需额外的签名验证。
在 HUMAN 中加入允许列表
HUMAN Sightline
HUMAN 会在已知机器人和爬虫中,使用现有机器人名称 ChatGPT Agent 来识别云浏览器流量。
要允许此流量:
在你的 Sightline 或 BD 控制台中,转到策略 → 流量策略设置 → 已知机器人和爬虫。
搜索 ChatGPT Agent。
将规则设置为开启,并选择允许。
HUMAN AgenticTrust
HUMAN AgenticTrust 会验证云浏览器流量,并允许你管理与现有 ChatGPT Agent 条目关联的权限。
要更新这些权限:
在你的 Sightline 控制台中,打开策略 → AI 智能体权限。
搜索 ChatGPT Agent。
根据需要查看并更新可用权限。
HUMAN 会自动验证请求签名。其权限设置不会改变云浏览器支持的功能:发布初期,云浏览器无法登录网站或完成付款。
在 Vercel 中加入允许列表
如果你的网站托管在 Vercel 上,则无需额外配置即可允许云浏览器流量。
Vercel 会通过现有 ChatGPT Agent 条目识别此流量;该条目标识为 chatgpt-operator,并且 Vercel 会自动验证其签名请求。
如需更多信息,请参阅 Vercel 对 Web Bot Auth 的支持。
在其他 CDN 中加入允许列表
如果你的 CDN 或防火墙无法自动识别云浏览器流量,可以直接验证请求:
确认
Signature-Agent标头与"https://chatgpt.com"完全匹配,包括引号。从 https://chatgpt.com/.well-known/http-message-signatures-directory 检索对应的公钥。
根据 RFC 9421 验证
Signature和Signature-Input标头。仅在成功验证签名后才允许请求。
故障排查
如果合法的云浏览器流量被阻止,请确认中间代理会保留以下标头:
SignatureSignature-InputSignature-Agent
还要确认你的允许列表规则使用的是上文列出的、特定于提供商的机器人名称或检测 ID。
