今日の優良食堂
実際に入れて動かして書いた、今日の一膳
ギット飯が代わりに導入・実行・コードまで確かめました
今日の優良食堂 · ギット飯が代わりに導入・分析

TecharoHQ/anubis

AIスクレイパーからウェブサイトを守るWebファイアウォールユーティリティです。

Anubisは受信HTTPリクエストの「魂の重さ」を測り、AIクローラーなどの自動スクレイピングを止めるリバースプロキシ型の防御ツールです。ポリシーファイルでUser-AgentやIPレンジ、ヘッダーを判定し、疑わしいクライアントにはProof-of-Work等のチャレンジを課します。

01 / 概要
何をするものか一文で言うと
ひとことでAIスクレイパーからウェブサイトを守るWebファイアウォールユーティリティです。

Anubisは受信HTTPリクエストの「魂の重さ」を測り、AIクローラーなどの自動スクレイピングを止めるリバースプロキシ型の防御ツールです。ポリシーファイルでUser-AgentやIPレンジ、ヘッダーを判定し、疑わしいクライアントにはProof-of-Work等のチャレンジを課します。

02 / 構造
どう動くのか中核のしくみ
読み方動きの流れを図と一緒にほどきました。

cmd/anubis/main.goがHTTPサーバーを起動し、lib/configとlib/policyが読み込むYAMLポリシーに基づいてリクエストをALLOW・DENY・CHALLENGEに分類します。ポリシーの実体はdata/botPolicies.yamlやdata/bots、data/crawlers配下のYAMLファイル群です。CHALLENGE判定されたクライアントはブラウザ上でJavaScriptまたはWASM実装のProof-of-Workを解く必要があります。解答に成功するとed25519かHS512で署名したJWT Cookieが発行され、以降のリクエストは背後のオリジンサーバーへ転送されます。decaymapパッケージはチャレンジ状態を一定時間で失効させる仕組みを持ちます。cmd/robots2policyコマンドを使うと、robots.txtをAnubis用ポリシーYAMLに変換できます。

03 / 体験
入れるとこんな体験になりますギット飯が実際にたどった順序
所要ギット飯が実際に導入・実行しながらたどった順序です。
  1. STEP 01

    Makefileかgo buildでcmd/anubisをビルドすると、単一のanubisバイナリが生成されます。

  2. STEP 02

    --policy-fnameでYAMLポリシーを指定して起動すると、8923番ポートでHTTPを、9090番ポートでメトリクスを待ち受け始めます。

  3. STEP 03

    一般的なブラウザでアクセスすると、UAが疑わしい場合はチャレンジ画面が出て、PoW計算後にCookieが付与されて元のサイトへ通されます。

  4. STEP 04

    UAを機械的な文字列に変えてcurlでアクセスすると、DENYかCHALLENGEの応答が返り、JS未実行では先に進めません。

  5. STEP 05

    internal/test配下のPlaywright統合テストを動かすには、別途npx playwright run-serverとvalkey起動が必要で、環境構築に手間がかかります。

  6. STEP 06

    cmd/robots2policyでrobots.txtを読み込ませると、既存の禁止設定をAnubis用YAMLへ変換できます。

04 / 成果物
何が手に入るのか導入後に手元に残るもの

手元にはリバースプロキシとして動くanubisバイナリと、豊富な既製ボット判定ポリシー群(data/bots、data/crawlersなど)が残ります。自サイトの前段にAnubisを置けば、AIクローラーのアクセスをチャレンジで足止めする効果が得られます。

05 / 注意
ここは先に知っておいてください先に知っておくとよいこと
正直なところ誰にでも合うとは言いにくいところです。
01

Playwright統合テストにはnpxやvalkey、ブラウザバイナリなど追加インストールが要るため、フル再現には手間がかかります。

02

Windowsサービス版のbootstrap_windows.goによれば、anubis.envは多ユーザー環境で他ローカルユーザーからも読み取り可能な点が明記されています。

03

判定はUser-Agent文字列やIPレンジに依存するため、UAを詐称する巧妙なスクレイパーへの効果はポリシー精度次第です。

06 / 結論
ギット飯の結論食べてみる価値のある一膳か
ギット飯の最終判断優良食堂

自サイトをAIクローラーの過剰アクセスから守りたい運用者向けのリバースプロキシで、既製ポリシーを使えばすぐ試せます。README・実ソース(main.go、bootstrap_windows.go、テスト群)から機能と制約が具体的に読み取れるため、導入前の判断材料として十分に信頼できます。

今日の残りの一膳
SUBSCRIBER LIBRARY
これまでに検証した優良食堂を一堂に

4 つの関門を通った優良食堂がすべてバックナンバーに集まっています。いちばん新しい一膳はどなたでも無料で読め、それより前の優良食堂の検証の根拠・詳しい解説は ギット飯 プレミアムのご購読ですでに開いています。

優良食堂バックナンバー →
リポジトリ詳細🧪 ひと言で味見する