Scarnox · Blog

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 captchaAWS 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つです。

  1. スクレイピング時にcaptchaを避ける方法のアプローチを使って、captchaを発生させる頻度を減らす。
  2. captchaが自分のシステムを守っているなら、テスト用のキーかステージング環境を使う。
  3. サイトの運営者に、APIやallowlist、アクセシブルな代替手段を依頼する。

近日対応予定の種類のサポートは準備中です。アカウントを作成すると、無料のトライアルクレジットで始められます。カード登録は不要です。各種類がリリースされたときにすぐ使えるようになります。

次のステップ