Administrator
Published on 2026-09-10 / 2 Visits
0
0

机器人访问正在变成一套强制执行栈:身份、用途与默认策略

Web Bot Auth 能验证签名身份,却无法单独回答一个更重要的问题:这个机器人现在能不能访问这项资源。机器人访问治理正在形成五层强制执行栈:站点偏好、请求身份、用途声明、名录分类和边缘策略。变化的核心不是多了一种 bot 标签,而是这些信号开始进入同一条决策链。

Cloudflare 在 2026 年陆续发布的控制项把这条链路展示得很完整。站点可以分别管理 Search、Agent 和 Training 流量;BotBase 记录运营方、行为、内容用途和验证方法;Bot Preference Sync 让 robots.txt 与控制台策略保持一致;边缘规则再将证据转成允许或阻断。

组件已经出现,系统仍在磨合。每一层究竟证明什么,决定了这套机制是访问治理基础设施,还是一个更复杂的误判来源。

robots.txt 表达偏好,安全控制负责执行

robots.txt 的优势一直是低成本。站点发布 User-Agent 与路径规则,合作型爬虫主动读取并遵守。RFC 9309 将这套协议标准化,同时明确指出它不构成访问授权。真正需要保护的资源仍要使用 HTTP 认证、WAF 或应用权限。

AI 时代让这个边界更突出。同一家运营方可能同时运行搜索索引、模型训练和用户触发的实时 Agent。公司名相同,不代表用途相同;User-Agent 相同,也无法说明这次请求为了发现内容、训练模型,还是替用户完成操作。

Bot Preference Sync 解决的是配置漂移:站点在控制台选择的 Search、Agent 与 Training 偏好,可以同步到托管的 robots.txt 内容,同时保留原有规则。这里仍有两条路径:robots.txt 对外发布偏好,边缘策略实际处置流量。两者一致会减少争议,二者的安全属性依然不同。

第一层:站点偏好

站点首先要表达自己希望怎样使用内容和流量。一个统一的 Block AI Bots 开关已经不够。

Cloudflare 的三类用途分别回答:

  • Search 是否为了日后检索与发现建立索引。
  • Agent 是否实时代表某个人完成任务。
  • Training 是否把内容用于模型训练或微调。

一个爬虫可以同时命中多类。Search 与 Training 混在同一爬虫里时,完整记录两个用途比挑一个方便的标签更可信。Content Signals 还能进一步表达 reference、full 等内容使用层级。

这一层记录站点希望怎样处理内容,也记录机器人声称怎样使用内容。它属于规范与声明,真实性需要后续证据支持。

第二层:请求身份

身份层只回答一个窄问题:这次请求是否由某个已发布密钥的持有者签名。

当前 IETF Web Bot Auth 工作组草案基于 HTTP Message Signatures,在请求中携带 Signature-Agent,再从 HTTPS 密钥目录获取公钥完成验证。相比可伪造的 User-Agent 和共享云 IP,这种方式能提供更稳定的签名身份。

草案对信任边界写得很清楚。验证成功能够证明:解析后的目录发布了一把密钥,该密钥的持有者签署了被覆盖的消息部分。它没有证明运营方一定诚实,没有证明行为安全,也没有证明请求得到终端用户授权。是否允许仍由站点策略决定。

标准状态也必须带日期。2026 年 9 月 1 日,个人草案被工作组采纳为 draft-ietf-webbotauth-httpsig-protocol-00。它已经是活动工作组文档,仍属于 Internet-Draft,尚未成为 RFC。

标准在收敛,实现仍有版本错位

当前公开文档已经出现线格式分叉。IETF 工作组草案要求新发送方使用字典形式的 Signature-Agent,验证方可以在迁移期兼容旧字符串形式。Google 的实验指南使用字典形式,并提醒只有部分请求带签名。Cloudflare 的实现文档目前仍要求旧字符串形式,还说明后来的字典形式会验证失败。

这些资料证明的是文档层版本错位。双方生产系统是否通过适配层完全互通,官方资料尚未明确。网站上线时应记录协议版本和验证器行为,保留传统 IP、反向 DNS 与 User-Agent 回退,并用实际流量测试兼容性。

一个 signed=true 字段无法承载这些差异。

第三层:用途声明

身份与用途是两个字段。运营方的签名可以保持连续,同一个运营方仍可能运行 Search、Agent、Training、SEO、监控和交易类自动化。

用途声明要经过三类证据校准:

  1. 运营方提交的用途与公开说明。
  2. 签名身份、IP、User-Agent 等技术标识。
  3. 实际访问路径、频率、引流、内容复用和策略遵守情况。

三类证据一致时,用途标签才逐步获得可信度。只靠表单会形成自我声明;只靠签名只能证明密钥;只靠行为分类又可能产生误判。

IETF 工作组特意把用途词汇放在 Web Bot Auth 的范围之外,也不处理终端用户身份。协议负责认证自动客户端,平台与站点继续负责用途分类、信誉、授权和风险判断。这种分工很重要:密码学能提高伪造成本,无法让用途声明自动变真。

第四层:两种目录承担两种职责

Web Bot Auth 的密钥目录与 BotBase 业务名录名称相似,职责完全不同。

密钥目录提供验证请求所需的公钥材料。它回答去哪找密钥、怎样轮换、怎样缓存。BotBase 则连接运营方、机器人名称、行为、内容用途、验证方式、审核状态与检测 ID。BotBase for Operators允许运营方提交、查看审核进度和更新记录,让站点在控制台检索分类并用于安全规则。

BotBase 也不应被当作绝对事实源。它混合了运营方声明、平台审核、技术验证和持续行为观察。理想的记录应标明每个字段来自哪种证据,以及最后核验时间。否则,站点无法区分某项用途是自己申报、人工审核、密码学验证,还是行为模型推断。

目录本身还会成为运行时依赖。IETF 草案建议把验证结果分为 verified、invalid 和 unverified。密钥目录暂时不可用或未知密钥导致证据不足,含义不同于签名校验失败。把两者统一当作恶意,会让目录故障变成大面积误封。

第五层:本地策略与边缘执行

最后一层才负责回答:给定身份、用途、行为、资源和站点偏好,网关采取什么动作。

Cloudflare 为主要 AI 用途提供 Allow、仅广告页阻断和全站阻断三种选项。其产品文档宣布,2026 年 9 月 15 日开始,新接入域名将默认在含广告页面阻断 Training 与 Agent,同时继续允许 Search。截至 9 月 10 日,这仍是五天后生效的计划,只适用于新域名,并允许客户选择其他策略。

这条规则说明默认值也需要版本管理。相同请求可能因为域名接入日期、站点是否退出、页面是否含广告,以及爬虫是否同时属于多类而得到不同结果。

不同平台也会从同一身份信号得到不同默认动作。AWS WAF表示,其托管 Bot Control 会默认允许验证通过的 Web Bot Auth 流量,并提供标签供客户编写更细规则。身份是决策输入,默认动作属于平台与站点政策。

五层证据不能压成一个绿灯

层级 最强可支持结论 仍需补充的判断
站点偏好 所有者发布或配置了期望处置 爬虫是否遵守,边缘是否执行
Web Bot Auth 某个已解析标识发布的密钥签署了指定消息部分 运营方信誉、用户授权、用途与安全性
用途声明 运营方声称一种或多种用途 行为是否符合声明
业务名录 平台关联了标识、审核、分类和行为记录 本站最终是否放行
边缘执行 某版策略产生了允许、阻断、挑战、限速或计费 策略的经济与业务效果是否合理

可信度应逐层累积。验证过一把密钥,不等于获得所有资源的通行证。

一份可执行的决策合同

站点可以用五条规则把复杂度压缩下来。

第一,先划分资源。公开文章、付费档案、账户页、支付流程和删除操作使用不同基线。

第二,保留 verified、invalid、unverified 三种身份状态。Web Bot Auth 仍在早期采用阶段,未签名请求需要单独观察。

第三,多用途爬虫按所有适用标签判断。对于禁止进入训练的数据,Search 加 Training 的组合应采用更严格规则,除非存在可验证的用途隔离。

第四,本地策略拥有最终决定权。Verified 提高来源可信度,不自动授予权限。

第五,记录完整决策元组:

时间
站点策略版本
资源类别
签名协议版本
身份验证结果
业务名录记录版本
声明用途
行为证据
命中规则
最终动作
边缘响应状态
源站响应状态

这些字段能让一次放行或阻断被复现、申诉、审计和安全修改。

日志还要进入对账闭环。定期比较公开的 robots.txt、控制台配置、生成的 WAF 规则、名录记录和测试爬虫拿到的真实响应。策略显示允许,上游规则却返回 403,属于配置漂移,即使每个控制台单独看都显示正常。对账至少同时验证一条正向路径和一条负向路径,例如让已验证搜索爬虫读取公开页面,同时保持同一内容的 Training 阻断。

网站与机器人运营方分别要做什么

网站侧的迁移重点是先观察再执行:让 robots.txt 与真实策略同步;按资源与用途盘点规则;分别统计验证成功、失败和证据不足;测试新旧 Signature-Agent 形式;按生效日期、域名批次和例外状态检查默认值;把最终动作及证据导出到日志,并用真实 HTTP 响应持续对账。

机器人运营方要维护可验证身份:提供稳定的 HTTPS 标识和高可用密钥目录;合理覆盖请求组件,使用短有效期并支持密钥轮换;完整申报所有行为与内容用途;及时更新名录、User-Agent 与验证方式;针对不同验证器执行兼容测试;提供公开联系方式与分类申诉路径。

这套系统的瓶颈已经从有没有某个组件,转向组件之间能否稳定连接。

真正的产品是执行基础设施

Web 不需要一个完美的 bot 标签。它需要少量信号和一条可审计的决策路径。

robots.txt 继续承担低成本偏好接口;Web Bot Auth 提供请求来源证明;用途分类解释自动化为何到访;业务名录把声明、审核与行为连接起来;边缘策略将证据转成本站动作。

系统可靠的前提是每一层保留自己的边界。签名机器人仍可能违反政策,未签名请求也可能无害,名录可能过期,默认值会随日期变化。将这些不确定性显式留在系统中,策略才有机会正确处理它们。

如果关注未知 Agent 的检测和误报问题,可继续阅读浏览器指纹失效之后:行为检测、签名身份与误伤成本。那篇文章讨论行为检测、身份、授权与无障碍风险;本文聚焦身份与用途如何进入平台策略和边缘执行。

FAQ

Web Bot Auth 是什么?

它是 IETF 正在推进的自动 HTTP 客户端认证协议,通过 HTTP Message Signatures 与公钥目录验证请求身份。当前规范是工作组 Internet-Draft,仍未成为 RFC。

robots.txt 能阻断 AI Agent 吗?

robots.txt 发布合作型爬虫应遵守的规则。RFC 9309 明确说明它不属于访问授权。可靠阻断需要 CDN、WAF、源站规则或应用权限。

Web Bot Auth 验证通过是否意味着自动放行?

不意味着。验证结果证明的是被覆盖消息的签名身份。站点仍要判断用途、资源、行为、用户授权和本地政策。

Search、Agent 与 Training 有什么区别?

Search 为日后发现建立索引;Agent 实时代表用户完成任务;Training 把内容用于模型训练或微调。一个爬虫可能同时具备多种用途。

为什么要区分 unverified 与 invalid?

密钥目录不可用、密钥未知或本次请求未签名都会造成证据不足。它们与已经携带签名但密码学校验失败的含义不同。

Google 与 Cloudflare 的 Web Bot Auth 当前是否完全互通?

公开文档尚不能证明完全互通。Google 采用当前字典形式的 Signature-Agent;Cloudflare 目前仍记录旧字符串形式,并说明字典形式会验证失败。IETF 草案提供了迁移兼容方案,生产兼容性仍需实测。

Cloudflare 9 月 15 日会默认阻断所有 Agent 吗?

不会。Cloudflare 宣布的是:从 2026 年 9 月 15 日起,新接入域名默认在含广告页面阻断 Agent 和 Training,同时允许 Search。客户可以修改配置,这也不是 Web 的通用规则。

参考资料


Comment