拦不拦 AI 抓取,是写在排除规则里还是另开一道口子

📅 2026-10-09 👁️ 0

站方想控制 AI 类抓取程序的访问时,该用 Robots 排除规则还是别的方式,差别在于两者覆盖的范围不同:排除规则能表达意图、挡得住自觉遵守规则的抓取,但它是抓取建议而不是访问控制;需要强制时,收口必须落在服务端的鉴权与路径不可公开读取上;如果目的是防止内容被整段搬走,那是另一层防护,靠干扰码与防采集。三层各有各的位置。

排除规则表达的是意图还是强制

后台的 Robots 配置项下发的是排除规则,遵守与否由抓取方决定。公开的文档口径把这条界线说得很清楚:这类文件适合用来避免抓取带来的带宽消耗,一份限制性的文件比索引规则更有效,因为它把资源整个挡在抓取之外;但它管的是抓取,被文件挡住的页面如果从别处被链接,仍可能被收录。对 AI 类抓取程序来说同理——你写下排除,等于给出可读的意图声明,能不能生效取决于对方是否照做。

按标识写和按目录写各自挡什么

写法 作用范围 挡得住 挡不住
按程序标识排除 声明识别到该标识时的行为 自觉遵守规则的抓取方 改名或不读规则的抓取方
按目录排除 整类路径不被请求 常规批量遍历 已被外链带出的单个地址
服务端鉴权 请求进入应用之后 所有未授权访问 已授权会话被转发
内容层防护 已可见内容的再利用 整段搬运与聚合 人工摘录

表里前两行都在「意图」一侧,后两行才在「强制」一侧。只配前两行时,敏感目录的保护实际上交给了对方的自觉性。

需要强制时该落在哪一层

强制要发生在服务端处理请求的那一步:这条地址需不需要身份、以什么身份能读到什么状态的内容。草稿与待发布内容的可见性、后台接口的调用权限、按能力域设置的暴露范围,都属于这一层。把同一件事交给排除规则去完成,会出现两个副作用:一是路径被写进公开文件,等于对外标注了这个目录存在;二是规则挡的是请求,不挡已经拿到地址的人。

内容被整段搬走时的另一道防护

如果目的不是阻止访问,而是提高批量搬运的成本,站内用的是另一类能力:防采集干扰码用来保护内容不被批量采集,配合敏感词过滤与内容审核,作用点都在内容呈现与再利用环节。它和访问控制的区别要分清——干扰码不阻止谁读,它让整页抓走之后得到的不再是干净可用的文本。做原创内容站时,这一层通常比排除规则更有实际效果。

与对外清单层的关系

站内还有一层是给检索与模型用的对外清单:站点地图提供全量地址,站点 llms.txt 提供一份便于大语言模型理解的导览。它们决定「被看到什么」,排除规则决定「不要抓什么」,服务端鉴权决定「谁能读到」。三者配置时容易互相覆盖,例如把整类目录写进排除规则,却忘了这份目录里的地址同时出现在站点地图里,结果就是一份清单放行、一份清单拦截。

上线前的三步验证

第一步,用未登录会话直接请求被排除的地址,看返回的是内容还是拒绝——拿到内容就说明保护只在意图层。第二步,检查对外清单类文件里没有把想挡的地址列出去。第三步,抽一页正文核对呈现层是否带上了防采集处理,并确认复制粘贴得到的不是原始结构。三步做完再决定要不要额外收紧暴露范围,比一开始把目录全写进排除规则更稳。

常见问题

问:只写排除规则能挡住 AI 抓取吗? 答:只能挡住自觉遵守规则的那一部分,它是意图声明,不是访问控制。

问:把后台目录写进 Disallow 有什么好处和坏处? 答:好处是减少被常规遍历请求的次数;坏处是向外部标注了该入口的存在,真正的入口防护要靠鉴权与登录限制。

问:不想让内容被大模型引用,是不是该关掉对外清单? 答:这要分清目的。关掉清单减少的是被发现的范围,但已被外链带出的地址仍然可抓;内容层的防采集处理解决的是另一类问题。

相关文章

模型说明文件里标注为可选的那一段,什么时候真的会被跳过

面向大模型的站点说明文件里,只有写站点名称的那一行是必需的,其余段落都允许省略;条目行由必需的链接加可选的冒号后说明组成。标注为可选的段落是给读取方在上下文不够长时让路的,被跳过时损失的是次要信息,不是主干入口,因此主干链接要放在非可选段落里,站内这份文件由内容模块自动生成并保持同步。

2026-10-09

子站和分站要不要各自放一份密钥文件,推送时归属怎么算

多站点做链接主动推送时,密钥文件证明的是主机归属而不是站点品牌:公开提交通道把每个子域视为独立主机,要求分别为每个子域创建和管理单独的密钥文件,放置位置是站点根目录或同一主机上可公开访问的文件夹。因此子站各放一份、按主机核对可访问性,共用一份会在归属校验这一步失败。

2026-10-09

主动推送一次能提交多少条地址,两个通道给的数为什么不一样

主动推送的单次条数上限在不同通道之间差别很大,原因是两个数回答的不是同一个问题:一条通道给的是单次请求能装多少条地址,另一条给的是每次提交操作的上限并叠加按账号浮动的每日额度。量纲不同就不能直接比大小。批量提交要按通道能力切批排队,而不是把整站地址一次塞进一个请求。

2026-10-09

安全版本发布后为什么会强制自动更新,而不是等管理员手动升级

官方对高危安全版本启用强制自动更新,是因为修复窗口不能指望每个站点的管理员同时在线:漏洞公开后,从补丁发布到被批量利用之间往往只剩很短的间隔,把节奏交给个人决策会让大量站点停在没有防护的版本上。强制更新解决的是覆盖面,不等于修复完成——升级前要留备份,升级后还要按公告轮换服务端密钥、修改管理员口令。

2026-10-09

同一个注入漏洞,为什么只在某一种数据库上才会触发

注入类漏洞按数据库分档,是因为同一段拼接出来的查询在不同引擎上的转义与语法规则不同:一种引擎把送进去的内容当成了语句,另一种引擎可能把它当成文本,或者在语法上直接报错。官方公告里写明「仅影响使用某种数据库的站点」就是这个原因。收口办法不是换数据库,而是让查询由数据访问层统一生成并做参数绑定。

2026-10-09

轻量型博客程序和独立 CMS 怎么选,先看哪几项

搭企业官网时,轻量博客程序与独立 CMS 的选型看三项:结构规模、能力面、适用场景,而不是只看安装体积。一款以轻量著称的开源博客程序公开称自己仅用 7 张数据表就实现完整插件与模板机制、并原生支持 Markdown。企业官网通常要补的是结构化内容、多站点多语言与更高并发承载。

2026-10-09

导出文件里存着的旧数据,怎么会变成新的注入点

二次注入分两步:恶意内容在写入时先被存住,等到读取或重放时才拼进查询语句。导出再导入正是一条容易被漏的重放路径——旧数据看似安全,重放时却绕过了写入侧的校验。一款主流程序在 2026 年 10 月的安全版本里就修复了导出文件中的二次注入。站内的批量导入与文档导入接口应与页面写入共用同一套校验。

2026-10-09

后台前端依赖库版本升级,算不算一项安全维护动作

后台自带的脚本库与上传组件也在攻击面上,判断一次依赖升级是不是安全动作,看它是否与漏洞修复写在同一次发版里、是否覆盖了已知漏洞区间。一款同行程序在 2026 年 9 月的版本里,就把后台 jQuery 与上传组件升级和「修复旧版本已知安全漏洞」写在同一则公告中。升级前先备份,升级后核对版本号与行为。

2026-10-09