开源AI爬虫拦截工具Anubis:保护网站内容的技术解析

本文详细介绍开源工具Anubis如何通过JavaScript挑战和计算谜题阻止AI爬虫抓取网站内容,包括其技术架构、工作原理、部署方式和实际防护效果,帮助网站管理员有效降低服务器负载和防护成本。

厌倦AI爬取你的内容?这款开源机器人拦截器可以帮忙 - 方法如下

认识Anubis:阻止AI机器人的自托管防火墙

任何运营网站的人都知道如今AI机器人有多烦人。应用交付网络公司F5发现,超过一半的网络访问并非来自真人,而是来自数据抓取工具,包括OpenAI、Anthropic、Google和Perplexity的AI机器人。

(披露:ZDNET母公司Ziff Davis于2025年4月对OpenAI提起诉讼,指控其在训练和运营AI系统时侵犯了Ziff Davis的版权。)

阻止AI机器人的行动

人们厌倦了在自己的网站上花钱,却让AI公司窃取所有有价值的内容。因此,技术教育者兼兼职机器人斗士Xe Iaso编写了一个开源程序Anubis来阻止AI机器人。

Anubis并非唯一此类程序。Iaso坦承它"基本上就是Cloudflare的’你是机器人吗?‘页面(又名Cloudflare Turnstile),但可以自托管"。这使您可以在自己的服务器上运行它而无需支付任何费用。

Anubis旨在保护网站——特别是由小型组织、开源项目和档案馆运营的网站——免受自动化抓取工具的无情攻击,这些工具可能压垮服务器并增加托管成本。

该程序是一个Web AI防火墙实用程序。所有传入的HTTP连接在到达实际网站之前都必须成功通过它。Iaso幽默地将Anubis比作古埃及神祇,通过一个或多个挑战来称量连接"灵魂",保护上游资源免受抓取机器人的侵害。

它通过要求访问者解决计算谜题来实现这一点,这对个人电脑来说很简单,但对大规模操作的机器人来说成本很高。

系统检查访问者是否像真实浏览器一样行为,使用JavaScript和cookie验证真实性。当机器人未能通过这些挑战时,它会在到达网站核心资源之前被阻止。

Anubis是一个"反验证码"

您可能会问:“这不就是验证码吗?AI程序不是和人一样擅长解决这些问题吗?”

确实如此。但正如Iaso所说:“Anubis是一个反验证码。它利用浏览器功能自动化验证码的许多工作,目前主要实现方式是让它运行一系列加密数学计算,通过JavaScript证明您可以以服务器可验证的方式运行JavaScript。”

她很清楚许多人由于安全和隐私问题而对运行JavaScript犹豫不决。她正在开发一个非JavaScript版本的Anubis,但尚未完成。“我正在开发一个不依赖JS的更好版本,但天哪,实现起来将非常困难。”

技术实现细节

Anubis使用Go语言编写,采用开源MIT许可证授权。它被设计为"尽可能轻量,确保每个人都能保护最亲近的社区"。平均而言,该程序在服务器端使用不到128MB RAM。大部分工作负载由访问者的PC和智能手机处理。

最终用户处理负载非常低,普通用户不会注意到。实际上,由于Anubis透明运行,没有需要解决的验证码或需要点击的图像;大多数人甚至不知道发生了什么。

工作量证明在后台运行,只有使用过时浏览器或禁用JavaScript的用户可能会遇到问题。但对于机器人农场来说,情况就不同了——它们的负载会迅速累积。

配置策略

Iaso在博客中表示:在高层面上,Anubis在您的机器人策略文件中有一套庞大的规则。如果客户端匹配规则,它们要么被放行、阻止,要么被选中进行二次筛查。

默认情况下,Anubis旨在立即工作,通过阻止所有流量流失让管理员安心睡眠,不会被停机警报吵醒。这意味着它过于偏执,会积极挑战所有内容,类似于Cloudflare的"我正遭受攻击"模式。

“我的意图是管理员从Anubis相当偏执开始,然后随着找到更好的模式和匹配方法,慢慢减少偏执程度。”

核响应解决方案

结果是一个被Iaso描述为"有点核响应"的工具。

“这将导致您的网站被较小的抓取工具阻止,并可能抑制像互联网档案馆这样的’好机器人’。您可以配置机器人策略定义来明确允许它们,我们正在整理一套’已知良好’的机器人列表,以在可发现性和正常运行时间之间达成妥协。”

许多组织已经准备好采取核响应。GNOME、FFmpeg和UNESCO等组织已采用Anubis来保护其在线基础设施。

自2025年1月发布以来,Anubis已被下载超过20万次,并帮助众多组织避免停机和减少不必要的AI抓取负担。

根据满意用户杜克大学的说法,该学校的图书馆系统已成功阻止约90%的不必要流量和每天超过400万个不需要的HTTP请求,同时在最小化对真实用户阻止的情况下提高了服务性能。

安装和运行方法

有多种安装和运行Anubis的方法。通常,Anubis位于反向代理和目标服务之间。

目前支持是免费的。您可以通过其GitHub问题页面访问支持,或加入Iaso的Patreon并在Patreon Discord频道中进行实时聊天。

还有一个名为BotStopper的商业版本Anubis,目前仅为组织提供对程序品牌的更多控制。

持续的技术对抗

机器人开发者和防御者之间的战斗预计将永无止境。Anubis的创建者正在更新该工具以应对新的规避策略,如无头浏览器和高级浏览器指纹识别。

目标是保持互联网对人类的可访问性,同时使滥用机器人大规模操作变得不经济。这并不容易。

如果您觉得这个项目有用,请支持它。她需要所有能得到的帮助。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计