Total Pageviews

Sunday, 18 January 2026

保护你的网站免受 AI 爬虫侵扰的开源工具-Anubis



Anubis 是一款通过工作量证明(Proof-of-Work, PoW)挑战保护网站免受 AI 爬虫侵扰的反向代理工具。它通过强制客户端(浏览器)完成计算密集型任务来区分人类用户与自动化爬虫,从而阻止恶意爬虫对服务器资源的无限制消耗。

大型语言模型(LLM)训练依赖海量数据抓取,导致爬虫请求量呈指数级增长,中小型网站服务器资源被恶意耗尽。 传统 CAPTCHA 影响用户体验,而 Cloudflare 等方案对自建架构或特定合规场景不适用。Anubis 的 SHA256 计算消耗使爬虫规模化抓取时,单次请求成本提升 1000 倍以上,迫使恶意行为无利可图。

Anubis 代表了开源社区对 AI 爬虫滥用问题的创造性反击,其 PoW 机制以低成本实现高效防护,成为 Cloudflare 之外的轻量级替代方案。项目遵守MIT开源协议。
核心原理

    SHA256 工作量证明挑战:
        用户访问网站时,Anubis 会返回一段 JavaScript 代码,要求客户端计算一个特定字符串的 SHA256 哈希值。
        字符串由两部分组成:

    challenge:用户 IP、浏览器 User-Agent、当前日期、Anubis 公钥等公开信息。
    nonce:递增的迭代次数(从 1 开始)。
        目标:计算出的哈希值前 5 位必须为 0(默认设定),否则 nonce 自增并重新计算,直至满足条件。
        此过程消耗大量 CPU 资源,迫使 AI 爬虫因计算成本过高而放弃。

    验证与放行:
        客户端提交符合条件的 nonce 后,Anubis 服务器验证哈希值有效性。
        验证通过后,用户被重定向至目标网站,并写入 Cookie 避免后续请求重复验证。

实际效果

    有站长实测显示:97% 的爬虫流量因无法完成计算被拦截(2.5 小时内 81,000 次请求仅 3% 通过)。
    对真实用户影响极小:现代浏览器可在毫秒级完成计算,仅首次访问需验证。

 
使用方法
1. 部署 Anubis 实例

    步骤:
        从 GitHub 克隆项目并配置(需 Python 环境)。
        修改 config.py  文件,指定目标网站和 PoW 难度(如哈希前导零数量)。
    目录结构示例:

    anubis/
    ├── anubis/          # 核心代码
    │   ├── config.py    # 配置文件
    │   ├── main.py      # 启动入口
    │   └── routes/      # 路由逻辑
    ├── tests/           # 测试用例
    └── requirements.txt # 依赖库

2. 配置反向代理

    将 Anubis 置于目标网站前端,例如使用 Nginx 或 Caddy:

    # Nginx 配置示例
    location / {
        proxy_pass http://localhost:3000; # Anubis 实例地址
    }

    用户访问网站时,请求首先被重定向至 Anubis 的 PoW 挑战页面。

3. 定制化设置

    允许合法爬虫:
        在配置文件中添加 robots.txt 允许的爬虫(如搜索引擎),避免误封。
    调整计算难度:
        修改哈希前导零数量(例如从 5 位调整为 4 位),平衡安全性与用户体验。

项目地址:
https://github.com/TecharoHQ/anubis

安装方法:

https://anubis.techaro.lol/docs/admin/native-install/

https://anubis.techaro.lol/docs/admin/installation

No comments:

Post a Comment