Cloudflare Turnstile をヘッドレスブラウザなしで突破するRustライブラリ
原題: Cloudflare Turnstile solver library (no headless browser required)
なぜ重要か
ヘッドレスブラウザ不要のBot対策回避ツールは、スクレイピング・自動テスト双方の実務コストを下げ得る点でセキュリティ業界に直結する。
開発者のchris124567氏が、Cloudflare TurnstileウィジェットおよびChallenge Pageをヘッドレスブラウザなしで解決するRustライブラリ「cfsolve」をGitHubで公開した。リクエストベースのフルリバースエンジニアリングにより、Turnstileトークンまたはcf_clearanceクッキーを返す。スター数は335、フォーク数は36に達している。
「cfsolve」は、ページURL・sitekey・任意でページHTMLを入力とし、Cloudflare TurnstileのトークンをHTTPリクエストのみで取得するRustライブラリ兼CLIツールだ。Challenge Pageへの対応も含まれており、直接フェッチまたはページHTMLを渡すことでcf_clearanceクッキーを得られる。
最大の特徴はヘッドレスブラウザを一切使わない点だ。Puppeteerなどに頼る従来の自動化ツールと異なり、CPUやメモリの消費を大幅に抑えられる。その代わり、Cloudflareのブラウザチェックに対応するための「プロファイル」が必要で、ブラウザの応答パターンをJSONとして事前に記録しておく仕組みを採用している。
現時点で同梱されているプロファイルはiPhone上のSafari 26を模倣した「profiles/safari-26-ios.json」1種類のみ。プロファイルには実ブラウザで収集した応答データが格納されており、追加プロファイルの作成には実ブラウザのプロキシとして動作する「capture-proxy」を用いた手動またはAI支援の作業が必要だ。対応ブラウザはSafariとChrome/Chromiumのみ。
ビルドにはrust-toolchain.tomlで固定されたRustバージョンのほか、CMakeとC/C++コンパイラが必要とされる。ライセンスはMIT。コミット履歴は6件と開発は始まったばかりだが、公開直後から開発者コミュニティの注目を集めている。