Cloudflare CAPTCHAを特定の条件で回避する方法
サマリー
CloudflareのCAPTCHAを特定の条件で回避する方法を紹介しています。検索URLにアンパサンドが含まれている場合のみCAPTCHAが発動するルールを設定することで、簡単な検索が可能になります。Claude Codeを使用した試行錯誤についても触れています。
本文
CloudflareのCAPTCHA(現在は「Webアプリケーションファイアウォール > カスタムルール > 管理されたチャレンジ」と呼ばれています)を使用して、私のサイトのファセット検索エンジンに対するクローラーの過剰なスパイダリングを防いでいますが、簡単な?q=term検索でもチャレンジが発生することにうんざりしていました。いろいろ試した結果、以下のルールを登録することで、検索URLに少なくとも1つのアンパサンド(&)が含まれている場合にのみCAPTCHAが発動するようにできました:
(http.request.uri.path wildcard r"/search/*" and http.request.uri.query contains "&")
これで、/search/?q=lemurはCAPTCHAをトリガーせずに動作します!また、Claude Codeを使用してCloudflare MCPを試した際のメモも含まれていますが、該当するルールを編集できなかったため、Claude CodeをCloudflare APIに切り替えました。
(http.request.uri.path wildcard r"/search/*" and http.request.uri.query contains "&")
これで、/search/?q=lemurはCAPTCHAをトリガーせずに動作します!また、Claude Codeを使用してCloudflare MCPを試した際のメモも含まれていますが、該当するルールを編集できなかったため、Claude CodeをCloudflare APIに切り替えました。