タスクは完了しています。なぜreCAPTCHAトークンが拒否されるのでしょうか?

著者:solvethree読了時間:1分

タスクが ready であることは、solvethree が解決結果を返したことを意味し、ウェブサイトが受け入れたことを意味するわけではありません。次の解決に料金を支払う前に、クライアントが実際に送信した保護対象のリクエストを確認してください。トークンの値には solution.token を使用する必要があります。

このページの内容

まず送信リクエストを確認する

準備完了レスポンスの例 · プレースホルダーの認証情報
{
  "id": "example-task",
  "status": "ready",
  "solution": {
    "token": "EXAMPLE_TOKEN",
    "userAgent": "EXAMPLE_USER_AGENT",
    "secChUa": "EXAMPLE_CLIENT_HINTS"
  }
}

この例では、対象サイトが reCAPTCHA トークンを受け取る箇所に送信する値は solution.token です。id は solvethree タスクの識別子であり、トークンではありません。解決結果のオブジェクト全体も送信しないでください。

レスポンスを保持する変数だけでなく、最終的に送信されるリクエストを確認してください。空の値やフォームに残った古いトークンではなく、現在のトークンが含まれていることを確認します。共有ログにはトークンを記録しないでください。

ホスト名、アクション、製品を一致させる

送信したトークンは正しいのに、対象サイトで拒否されます。

タスクのサイトホスト名と、保護対象のリクエストのホスト名を照合してください。サブドメインや環境が異なっていないか確認します。

試してみましょう: 目的のホスト名に対するトークンをリクエストし、その対象に送信してください。対象サイトには、ワークスペースで利用可能な有効なプロファイルが必要です。

ある操作用にリクエストしたトークンが、別の操作に使われています。

タスクのアクションを、この保護されたリクエストで想定される正確なアクションと比較してください。

試してみましょう: 送信する操作に対応するアクションを使用してください。

連携で誤った reCAPTCHA の種類が使われています。

タスクリクエストの recaptchaType を確認してください。デフォルトは enterprise-v3 です。ゲートウェイは v3 も受け付けます。

試してみましょう: 対象の製品を明示的に指定してください。Enterprise v3 には enterprise-v3 を使用します。

発行からの経過時間と再利用を確認する(Enterprise を含む)

従来の reCAPTCHA と reCAPTCHA Enterprise のウェブサイト用レスポンストークンは、どちらも2分で有効期限が切れ、1回限り使用できます。従来のトークンは1回だけ検証でき、Enterprise トークンは1回だけ評価できます。使用可能なトークンを蓄えておくのではなく、保護されたリクエストの直前に解決してください。

  • 送信までに遅延がある場合は、解決してからトークンを送信するまでの経過時間を確認してください。
  • すでに検証または評価されたトークンを、別の送信に再利用しないでください。
  • 対象に送信する前にトークンをテストするだけの目的で、別途検証や Enterprise の評価を実行しないでください。そのテストでトークンが消費される可能性があります。

成功したプロキシと返されたブラウザー識別情報を維持する

解決には成功していますが、送信には別の接続が使われています。

解決に成功したプロキシと、保護されたリクエストに使用したプロキシを比較してください。proxyCandidates を指定した場合、最初の候補で成功したとは限りません。

試してみましょう: 成功したプロキシ経由で送信してください。解決から送信までの間に IP を切り替えると、リクエストが失敗する可能性があります。

送信側のクライアントが、独自のデフォルトのブラウザーヘッダーを使用しています。

送信する User-Agent と Sec-CH-UA の値を、solution.userAgent と solution.secChUa と照合してください。

試してみましょう: 返されたブラウザー識別情報と、成功したプロキシを組み合わせて使用してください。トークンに無関係な user-agent やクライアントヒントの値を組み合わせないでください。

拒否の詳細から次の対処方法を選ぶ

対象の HTTP ステータスだけでなく、レスポンス本文も確認してください。403 だけでは、どの保護機能がリクエストを拒否したかは分かりません。別のトークンをリクエストする前に、明示的なトークンエラーやホスト名・アクションの不一致がないかを調べてください。

検証の詳細を確認できる場合は、従来の reCAPTCHA の success の結果と、返されたコンテキスト情報やエラー情報を確認してください。Enterprise では、トークンの有効性と関連する評価理由を確認します。スコアだけで拒否の理由を説明できるとは限りません。評価の使用方法はウェブサイト側が決定します。

それでも原因を特定できない場合は、タスク ID、使用した場合は requestId、製品、タイムスタンプ、対象のホスト名とアクション、HTTP ステータスまたはタスクエラー、機密情報を除去したレスポンスの説明を添えて、[email protected] にお問い合わせください。API キー、プロキシのパスワード、トークン、Cookie、顧客データは削除してください。

解決しませんか?

タスクIDと発生したエラーをサポートにお送りください。

サポートに問い合わせる
タスクは完了しています。なぜreCAPTCHAトークンが拒否されるのでしょうか? · solvethree