robots.txt - 互联网的"禁止入内"标志

几乎每个网站的根目录下都有一个名为 robots.txt 的文本文件。这个文件是一种告诉搜索引擎爬虫 (机器人) "请不要抓取这个页面"的机制。基于 Martijn Koster 在 1994 年提出的"机器人排除协议",它已作为互联网礼仪服务了 30 多年。

然而,robots.txt 隐藏着一个令人惊讶的秘密:它是一个"请求",而不是"命令"。

robots.txt 没有法律约束力

robots.txt 是与爬虫之间的"君子协定"。Google、Bing、Yahoo 等主要搜索引擎会遵守 robots.txt,但从技术上讲,任何机器人都可以忽略它并继续抓取。恶意爬虫和垃圾邮件机器人自然会无视 robots.txt。

换句话说,robots.txt 是"对守规矩的机器人的礼貌请求",而不是安全措施。通过 robots.txt "隐藏"包含敏感信息的页面,就像在前门贴上"禁止盗贼"的标志一样。

robots.txt 实际上会泄露信息

讽刺的是,robots.txt 公开了一份"你想隐藏的东西"的清单。攻击者会首先检查 robots.txt,利用 Disallow 路径推断管理面板、测试环境、内部 API、备份文件等的存在。

User-agent: *
Disallow: /admin/
Disallow: /staging/
Disallow: /api/internal/
Disallow: /backup/

这个 robots.txt 本质上是在告诉攻击者"路径 /admin/、/staging/、/api/internal/ 和 /backup/ 是存在的"。

窥探知名网站的 robots.txt

由于 robots.txt 是公开文件,任何人都可以通过访问 https://example.com/robots.txt 来阅读任何网站的 robots.txt。

  • YouTube:长达数百行的 robots.txt,对内部页面和 API 端点进行了详细控制
  • 维基百科:按名称专门屏蔽了某些机器人 (如 MJ12bot)。这是对曾经使其服务器过载的机器人的回应
  • CIA (cia.gov):即使是政府机构也使用 robots.txt,包含 Disallow: /cgi-bin/ 等条目
  • Amazon:允许抓取产品页面,同时排除购物车、账户和内部搜索结果

robots.txt 与对抗 AI 爬虫的新战役

自 2023 年以来,为收集生成式 AI 训练数据而设计的爬虫 (GPTBot、CCBot、Google-Extended 等) 激增,使 robots.txt 重新受到关注。许多新闻网站和出版商已开始通过 robots.txt 屏蔽 AI 爬虫。

User-agent: GPTBot
Disallow: /

User-agent: CCBot
Disallow: /

然而,由于 robots.txt 仅仅是一个"请求",无法保证所有 AI 爬虫都会遵守。robots.txt 在 AI 时代的角色,包括其与版权法的关系,仍是一个持续讨论的话题。

总结

robots.txt 是一种作为互联网"礼仪"服务了 30 多年的机制。它没有法律约束力,也不能作为安全措施,但它仍然是管理与搜索引擎关系的重要工具。IP 确认上的 robots.txt 也经过配置,以确保搜索引擎正确抓取。

相关术语

机器人 robots.txt 旨在控制的自动化程序。从搜索引擎爬虫到恶意抓取器。 DNS 爬虫访问网站时,首先通过 DNS 解析域名。 HTTPS robots.txt 本身通过 HTTPS 提供,防止被篡改。 IP 地址 爬虫的源 IP。恶意机器人也可能基于 IP 被屏蔽。