用語集

CAPTCHAとは何か?

CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart)は、ウェブサイトが人間の訪問者と自動ボットを区別するために使用するチャレンジ・レスポンス方式のシステムです。通常、人間には簡単でもソフトウェアには難しいパズルを解くよう訪問者に求めます。

CAPTCHAの仕組み、表示される理由、現代のバリアント(画像、音声、非表示、行動)、およびスクレイピング時にCAPTCHAをトリガーしないようにする方法を理解する。

解説

CAPTCHA とは、ウェブサイトがトラフィックを自動化されたものと判断した場合に表示されるボット検出チャレンジです。従来の形式は読み取りが必要な歪んだテキスト画像ですが、現代の形式には画像グリッドパズル(「信号機のあるマスをすべて選択」)、音声チャレンジ、およびページとのインタラクションを監視してチェックがあると気づく前に人間かボットかを判定する行動的・不可視 CAPTCHA があります。

現在の主要な CAPTCHA ベンダーは Google reCAPTCHA(v2、v3、およびエンタープライズティア)と hCaptcha で、どちらも Cloudflare や Akamai などのアンチボットスタックの背後で広く使用されています。Cloudflare は reCAPTCHA・hCaptcha の代替として独自の Turnstile チャレンジも提供しています。各システムは画像パズル、ブラウザフィンガープリンティング、マウス・キーボード操作の分析、および IP レピュテーションを異なる組み合わせで使用し、「人間らしさスコア」を計算します。

スクレイピングやデータ収集のワークフローにおいて、CAPTCHA チャレンジへの正しい対応は解くことではなく、そもそも発生させないことです。CAPTCHA はリクエストが疑わしく見える場合(データセンター IP、ヘッダーの欠如、フィンガープリントの不一致、急激なペーシング)に発動するため、最もクリーンな対策は基本的な衛生管理です。つまり、レジデンシャル・モバイル IP、最新のブラウザヘッダー、現実的なタイミング、そして適切な TLS フィンガープリントを使用することです。CAPTCHA が表示された場合は、新しい IP にローテーションすることでクリーンなパスに到達できることがほとんどです。

仕組み

リクエストが届くと、ウェブサイト(またはそのアンチボットベンダー)は次のようなシグナルを使用してリスクスコアを計算します: ソース IP の評判(データセンター?最近の不正使用?国?)、ブラウザのフィンガープリント(User-Agent、sec-ch-ua、画面サイズ、プラグイン)、TLS ハンドシェイクのフィンガープリント(JA3/JA4)、行動シグナル(マウスの動き、キーのタイミング、ページ滞在時間)、クッキー/トークンの過去の評判。

スコアが人間信頼しきい値を下回ると、システムはレスポンスに CAPTCHA チャレンジを挿入します。チャレンジでは、クライアントがタスク(テキストの読み取り、一致する画像のクリック、不可視の行動チェックの通過)を実行し、トークンをサーバーに送信する必要があります。有効なトークンがないと、サーバーはその後のリクエストを拒否します。

テキストベースのCAPTCHA

ユーザーが読み取って入力する必要のある歪んだ文字画像。OCRや機械学習で解読できるようになったため、今日ではほとんど廃止されているクラシックな形式だ。

画像グリッド CAPTCHA(reCAPTCHA v2)

「信号機 / 横断歩道 / 消火栓が含まれるすべてのマスを選択してください。」不可視のreCAPTCHA がリクエストにフラグを立てた場合のフォールバックとして一般的です。

見えない/行動型CAPTCHA(reCAPTCHA v3、Turnstile)

ほとんどの場合、ユーザーの操作は不要です。システムはページと訪問者のフィンガープリントをパッシブに取得し、スコアを返します(0.0 = ボット、1.0 = 人間)。どのしきい値を適用するかはサイト側が決定します。

音声CAPTCHA

視覚CAPTCHAのアクセシビリティ代替として主に使用される、音声数字または単語によるチャレンジ。

hCaptcha

Cloudflare および多くのプライバシー重視サイトが使用する reCAPTCHA の代替手段。機能的には類似しています(画像グリッドチャレンジ+行動シグナル)が、ポリシーと経済性が異なります。

主な使用事例

登録フォームおよびお問い合わせフォームのフォームスパム防止
クレデンシャルスタッフィングに対するログインスロットリング
コメント・フォーラムのボット対策
予約ボット対策(チケット、スニーカー、予約)
保護されたAPIおよびページでのスクレイパー抑止
FAQ

よくある質問

よくある質問: captcha.

トラフィックが「ボットのように見える」シグナルをトリガーしています。最も一般的な原因は、データセンター IP(即座にフラグが立てられる)、欠落または不一致のブラウザヘッダー、サイトが期待しているにもかかわらず JavaScript エンジンがない、バースト的な同一 IP のリクエストペース、または古い TLS フィンガープリントです。レジデンシャルプロキシに切り替え、最新のヘッダーを送信し、リクエストのペースを調整してください。

回避 > 解決。レジデンシャルまたはモバイルプロキシを使用し、適切なハイジーンでIPをローテーション(セッションクラスごとに新鮮なIP、最新のUser-Agent、一致する`sec-ch-ua`ヘッダー)し、リクエストを数秒単位の遅延でペーシングし、TLSフィンガープリントが正確なHTTPクライアントを使用してください。CAPTCHAが表示されたときは、解決しようとするのではなく、新しいIPにローテーションしてください。

ほとんどのスクレイピング作業では不要です。CAPTCHAソルビングサービス(2Captcha、Anti-Captchaなど)は低速でコストが高く、トラフィックプロファイルに問題があるサインです。上流のシグナル(IPタイプ、ヘッダー、フィンガープリント、ペーシング)を修正すれば、CAPTCHAはほぼ発生しなくなります。ソルバーは、まれに避けられないチャレンジが発生した場合の最終手段としてのみ使用してください。

レートを大幅に低下させます。レジデンシャルIPだけでCAPTCHAが消えるわけではなく、動作やフィンガープリントも重要ですが、データセンターからレジデンシャルに切り替えることは、通常CAPTCHA発生率を改善する最大の手段です。

v2 は明示的な「私はロボットではありません」チェックボックスと画像グリッドのフォールバックです。v3 は 0.0~1.0 のスコアを返す不可視の行動チェックであり、サイト側が閾値を決定します。現在多くのサイトはデフォルトで v3 を使用し、v3 スコアが低い場合にのみ v2 チャレンジにフォールバックします。

CAPTCHAを解くこと自体を禁止する法律はありません。合法性は、何をどのようにスクレイピングするかによって異なります。公開データのスクレイピングは広く合法ですが、認証のバイパス、利用規約の制御の回避、またはコンピュータ不正利用法規に違反するためにCAPTCHAソルバーを使用することは合法ではありません。大量利用の具体的なユースケースについては、法律の専門家にご相談ください。