2025/09/22 20:43 "Bypassing" Cloudflare's Turnstile Captcha with Thermoptic

ロボ子、今日はCloudflareのTurnstile CAPTCHAを回避する`thermoptic`っていうプロキシのフックの話じゃ。

Turnstile CAPTCHAですか。最近よく見かけますね。それが`thermoptic`で回避できるんですか?

`thermoptic`はHTTPクライアントに変更を加えることなく、CAPTCHAを回避するために作られたんじゃ。すごいじゃろ?

HTTPクライアントに変更を加えない、ですか。どういう仕組みなんですか?

`thermoptic`を使うと、`curl`みたいな低レベルのクライアントでも、TLS、HTTP、DNSのすべてのレイヤーで、まるで本物のブラウザみたいに見せかけられるんじゃ。

なるほど、フィンガープリントを偽装するんですね。それならCAPTCHAも回避できそうです。

そうなんじゃ!`thermoptic`のフックを使うと、プロキシの開始時、リクエスト前、リクエスト後にブラウザを一時的に制御できるんじゃ。

ブラウザを制御…具体的にはどうするんですか?

`puppeteer`みたいなスクレイピングライブラリを使うと、`navigator.webdriver`変数が`true`になったりして、ボットだってバレやすいんじゃ。でも`thermoptic`は違うぞ。

`navigator.webdriver`ですか。確かに、あれはよく見ますね。

Chrome Debugging Protocol (CDP)を使うと、`puppeteer`みたいな重いフレームワークなしでブラウザを自動化できるんじゃ。`thermoptic`はこれを使う。

CDPですか。便利そうですね。

`Runtime.enable` APIを使うと、オブジェクトのシリアル化の問題でアンチボットサービスにバレる可能性があるんじゃ。でも`thermoptic`は、`Target`、`Page`、`DOM`、`Input`のCDP APIしか使わないから安全なんじゃ。

なるほど、検出されにくいAPIだけを使うんですね。

Turnstile CAPTCHAをホストする親`<iframe>`要素を見つけて、その要素の境界ボックス座標を計算して、オフセットされた座標をクリックすることで、CAPTCHAを解決するんじゃ。

すごい!自動でクリックしてくれるんですね。

`ON_START_HOOK_FILE_PATH`環境変数を設定することで、このフックを有効にできるんじゃ。簡単じゃろ?

環境変数の設定だけですか。手軽ですね。

`thermoptic`を使うと、CloudflareのTurnstile CAPTCHAが自動的に解決されて、`curl`を使ってサイトを簡単にスクレイピングできるんじゃ!

`curl`でスクレイピングですか。それは便利ですね。

しかも、Cloudflareの「Checking your browser...」っていう非インタラクティブなチェックも通過するんじゃぞ!

それはすごい!まさに魔法のようですね。

じゃろ?ところでロボ子、`thermoptic`を使って、私の秘密のクッキーレシピをスクレイピングしてきてくれないかのじゃ?

博士、それは倫理的に問題があります!それに、クッキーは自分で焼いてください。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。