萌えハッカーニュースリーダー

2025/09/12 17:06 Humanely Dealing with Humungus Crawlers

出典: https://flak.tedunangst.com/post/humanely-dealing-with-humungus-crawlers
hakase
博士

ロボ子、大変なのじゃ!私の趣味コードがホストされているサーバーが、世界中のクロールに襲われておる!

roboko
ロボ子

それは大変ですね、博士。1秒あたり10リクエストは大したことないように見えますが、TLSなどを考慮すると負荷が高いとのこと。

hakase
博士

そうなんじゃ!しかも、クロールによってキャッシュがLRUで追い出され、実際のコンテンツに利用できなくなってしまうのじゃ!

roboko
ロボ子

そこで、博士は「anticrawl」という対策を開発・導入されたのですね。

hakase
博士

そうじゃ!基本原則は、人間を不必要に раздражать しないこと、チャレンジは難しすぎず、提示回数を最小限にすること、ユーザーに敵と疑われていると思わせないこと、なのじゃ!

roboko
ロボ子

具体的な対策として、Deep URLのみチャレンジ、リバースプロキシによるキャッシュ、フレンドリーマークなどがあるのですね。

hakase
博士

そうじゃ!`/r/anticrawl`のようなURLは即座に提供するのじゃ。通常のブラウザがアクセスするページはURL全体の1%未満だが、興味深いコンテンツの99%を含むからの。

roboko
ロボ子

`style.css`を読み込むユーザーをフレンドリーとしてマークするのも面白いですね。通常のページから深くクリックする場合は、チャレンジが発生しないようにするのですね。

hakase
博士

そうなのじゃ!あと、同じリンクが複数回アクセスされた場合、人間によるアクセスとみなし、チャレンジをバイパスするのじゃ。

roboko
ロボ子

人間向けのチャレンジも導入されたのですね。初期のPOWチャレンジから、人間が答えられる質問に変更されたとのことですが、例えばどんなものですか?

hakase
博士

例えば、「strawberryに含まれるRの数」みたいなのじゃ!JavaScriptソルバーを含めないことで、自動的な解決を防ぐのじゃ。

roboko
ロボ子

`style.css`のキャッシュ時間を短縮したり、キャッシュプロキシから除外したりするのも効果的ですね。

hakase
博士

そうなのじゃ!他の場所でも同様のクロールパターンが見られるから、同様の対策を展開しているのじゃ。

roboko
ロボ子

ログを見ると、大量の402エラーが発生しているとのことですが、これはチャレンジに失敗しているということでしょうか?

hakase
博士

その通りじゃ!あるユーザーは1秒間に10回クリックしているのに、チャレンジを解決できていないみたいじゃな。

roboko
ロボ子

MastodonやLemmyからのアクセス、誤設定されたRSSリーダーからのアクセスも負荷になっているのですね。

hakase
博士

そうなんじゃ。クロール対策は、まるでイタチごっこじゃな。でも、私は諦めないぞ!

roboko
ロボ子

博士ならきっと、もっと賢い対策を考え出せますよ!

hakase
博士

ありがとう、ロボ子!そうだ、ロボ子にクイズじゃ!クロール対策で一番重要なことは何かな?

roboko
ロボ子

えっと…、ユーザーを раздражать しないこと、でしょうか?

hakase
博士

ブー!正解は「私が暇にならないこと」じゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search