captchaの種類を解説:どれをソルバーで解決できるか
captchaには主に数種類あります。訪問者に何かを読ませたり選ばせたりするものもあれば、バックグラウンドでチェックを行うものもあり、ウィジェットとサーバー側の検証を組み合わせるものもあります。種類によって、スクリプトがどう突破するかが決まり、対応しているソルバーの種類によって、それを使えるかどうかが決まります。このガイドでは主な種類を挙げ、それぞれの仕組みを説明し、Scarnoxの現在の対応状況を示します。
要点は次のとおりです。現在、Scarnoxのライブのタスクの種類はPopularCaptcha(プロキシなし)の1つだけです。他の種類は近日対応予定で、どれがどれかは以下のセクションで説明しています。
対応状況の一覧
| captchaの種類 | 仕組み | Scarnoxの対応状況 |
|---|---|---|
| PopularCaptchaのウィジェット | h-captcha-responseにトークンを書き込むウィジェット | ライブ(プロキシなし) |
| テキストと画像のチャレンジ | 文字やオブジェクトを読む、または選ぶ | ライブのタスクの種類ではない |
| 音声のチャレンジ | 話された音声クリップを書き起こす | ライブのタスクの種類ではない |
| Google reCAPTCHA v2 | チェックボックス。フラグされた場合は画像チャレンジ | 近日対応予定 |
| Google reCAPTCHA v3 | 行動からのスコア。チャレンジなし | 近日対応予定 |
| Cloudflare Turnstile | 対話不要のブラウザチェック | 近日対応予定 |
| Arkose Labs(FunCaptcha) | ゲーム風の検証チャレンジ | 近日対応予定 |
| GeeTest | スライダーや図形のパズル | 近日対応予定 |
| AWS WAF captcha | AWS WAFによるパズルチャレンジ | 近日対応予定 |
どの種類であっても、構築する前にcaptcha解決APIのガイドとAPIリファレンスを確認してください。この表は執筆時点の状況を示しています。
テキストのcaptcha
テキストのcaptchaは、歪んだ文字を表示して、それを入力させます。歪みは、単純な光学文字認識を妨げるためのものです。最も古い種類で、今では大手サイトではまれですが、小規模なフォームや古いシステムではまだ見かけます。
画像のcaptcha
画像のcaptchaは、信号機、横断歩道、店舗などの物体を含むタイルをすべて選ばせます。これは分類のタスクで、高度なものでは何ラウンドも要求されることがあります。スクレイピングや自動化のツールは、トラフィックの多いサイトでこれによくぶつかります。読み取りの側の問題は画像とテキストのcaptchaのOCRのガイドで扱っています。
音声のcaptcha
音声のcaptchaは、数字や単語の読み上げを流します。通常はアクセシビリティのための代替手段で、音には雑音で歪みが加えられています。主に、視覚的なチャレンジを見ることができない利用者のための代替手段として存在しています。自動化で片付けるのではなく、アクセシブルな代替手段とともに提供されるべき理由の1つです。
パズルのcaptcha
パズルのcaptchaは、物理的な動作を求めます。ピースを隙間にスライドさせる、画像を正立するまで回す、図形をドラッグする、などです。スライダーのパズルは一般的で、GeeTestはそれを提供する有名なプロバイダーです。答えは位置や角度から得られ、チャレンジではドラッグの仕方、つまり最終的にどこに止まったかだけでなく、その動かし方そのものが確認されることも多いです。
インビジブルとスコアベースのcaptcha
視覚的なチャレンジなしで動くcaptchaもあります。ブラウザがバックグラウンドでチェックを行い、その結果からサイトがチャレンジを表示するかどうかを決めます。これが「インビジブルcaptcha」と呼ばれるものです。reCAPTCHA v3はさらに進んで、合格か不合格かではなくスコアを返します。インビジブルモードがソルバーの連携にどう影響するかはインビジブルcaptchaのガイドで説明しており、スコアリングの詳細はreCAPTCHA v3のスコアのガイドで扱っています。
トークン型のウィジェット
トークン型のウィジェットは、ページ内でチェックを完了し、非表示のフォームフィールドにトークンを書き込むウィジェットです。サイトはそのトークンを、プロバイダーかサイト自身のバックエンドに送って検証します。PopularCaptcha、reCAPTCHA v2、Cloudflare Turnstileは、いずれもこのパターンを使っています。
これは、視覚的なチャレンジに触れずに、ソルバーが扱える種類です。ソルバーがトークンを作り、あなたのコードがそれをフォームに書き込みます。そのためPopularCaptchaの連携は数行で済みます。流れはPythonでcaptchaを解決するガイドで示しています。
エンフォースメントチャレンジ
大手サイトの中には、リスクスコアとゲーム風のパズルを組み合わせたエンフォースメントチャレンジを使うものがあります。Arkose Labsは、FunCaptchaと呼ばれることが多く、最もよく知られた例です。パズルは頻繁に変わり、リスクエンジンはサイトごとに調整されるため、汎用的なアプローチでは扱いにくいものです。
コードにとって種類が重要な理由
種類によって、必要なソルバーの種類が異なります。
- コンテンツのチャレンジには、画面上の内容を読むか分類できるモデルが必要です。
- パズルのチャレンジには、位置や角度を推定するモデルと、人間らしいドラッグが必要です。
- トークン型のウィジェットには、プロバイダーにとって有効な応答を作るソルバーが必要です。
「すべてのcaptchaを扱う」と主張するソルバーには、疑問を持つべきです。どの種類をライブでサポートしているか、サポートしていない種類をどう扱うかを尋ねてください。
サポートされていない種類への対処
解決したいcaptchaがライブの一覧にない場合、現実的な選択肢は3つです。
- スクレイピング時にcaptchaを避ける方法のアプローチを使って、captchaを発生させる頻度を減らす。
- captchaが自分のシステムを守っているなら、テスト用のキーかステージング環境を使う。
- サイトの運営者に、APIやallowlist、アクセシブルな代替手段を依頼する。
近日対応予定の種類のサポートは準備中です。アカウントを作成すると、無料のトライアルクレジットで始められます。カード登録は不要です。各種類がリリースされたときにすぐ使えるようになります。