すべてのプロダクト
Search
ドキュメントセンター

Captcha:サーバー側統合

最終更新日:Apr 01, 2026

クライアント側統合を完了した後、CAPTCHA チャレンジごとに検証を行うため、ご利用のサーバーから VerifyIntelligentCaptcha API を呼び出します。クライアント側でのみ検証を行うと、アプリケーションは保護されません。攻撃者がトークンを偽造することが可能であるため、リクエストを許可する前に、必ずバックエンドでトークンを検証してください。

前提条件

開始する前に、以下の条件を満たしていることを確認してください。

  • クライアント側統合を完了済みであること

  • アクセス認証情報を作成済みであること — Captcha 2.0 では AccessKey 認証および Security Token Service (STS) トークン認証がサポートされています。詳細については、「認証情報クライアントの初期化」をご参照ください。

  • API を呼び出す Resource Access Management (RAM) ユーザーに AliyunYundunAFSFullAccess 権限が付与済みであること

重要

Alibaba Cloud のルートアカウントの AccessKey を使用しないでください。万が一漏洩した場合、すべてのクラウドリソースが危険にさらされます。代わりに RAM ユーザーの AccessKey を使用してください。

仕組み

サーバー側検証の処理フローは以下のとおりです。

  1. クライアントがトークンを生成します。 ユーザーが CAPTCHA チャレンジを完了すると、Captcha SDK が CaptchaVerifyParamCaptcha 2.0 コンソール トークンを生成し、ご利用のサーバーに渡します。

  2. ご利用のサーバーが `VerifyIntelligentCaptcha` を呼び出します。 トークンを変更せずに Captcha 2.0 サービスに送信します。CaptchaVerifyParam を一切変更しないでください。変更すると検証エラーが発生します。

  3. Captcha 2.0 が応答します。 API は VerifyResulttrue または false)および、検証結果の詳細を示す VerifyCode を返します。

  4. ご利用のサーバーが検証結果に基づいて処理を行います。 VerifyResulttrue の場合はリクエストを許可し、それ以外の場合は拒否します。

トークンの制約事項:

  • 各トークンは 1 回のみ検証可能です。再利用するとエラーコード F008 が返されます。

  • 初期化レコードは 20 分後に有効期限切れとなります。初期化から検証までの間隔が 20 分を超えると、トークンは無効になります(F014)。

  • V3 アーキテクチャでは、動作検証リクエストとビジネス署名検証リクエストの間隔が 90 秒を超えてはなりません(F019)。

SDK のインストール

OpenAPI 開発者ポータルから、ご利用のプログラミング言語に対応したサーバー側 SDK をダウンロードしてください。パッケージを展開し、プロジェクトに読み込みます。

言語

SDK ダウンロード URL

GitHub ソース URL

Java

Python

Python SDK のダウンロード

Python 向け Captcha SDK

TypeScript

TypeScript SDK のダウンロード

TypeScript 向け Captcha SDK

Go

Go SDK のダウンロード

Go 向け Captcha SDK

PHP

PHP SDK のダウンロード

Alibaba Cloud Green SDK for PHP

Swift

Swift SDK のダウンロード

Swift 向け Captcha SDK

C++

C++ SDK のダウンロード

C++ 向け Captcha SDK

.NET

.NET SDK のダウンロード

.NET 向け Captcha SDK

VerifyIntelligentCaptcha API の呼び出し

エンドポイントの選択

クライアント側の region 値(AliyunCaptchaConfig 内)を、正しいサーバー側エンドポイントにマップします。リージョンが一致しないと、リクエストエラーが発生します。

クライアント側の regionデプロイメントサーバー側エンドポイント
cn中国本土(上海)— IPv4 専用captcha.cn-shanghai.aliyuncs.com
cn中国本土(上海)— デュアルスタック(IPv4 および IPv6)captcha-dualstack.cn-shanghai.aliyuncs.com
sgp中国本土以外(シンガポール)— IPv4 専用captcha.ap-southeast-1.aliyuncs.com
sgp中国本土以外(シンガポール)— デュアルスタック(IPv4 および IPv6)captcha-dualstack.ap-southeast-1.aliyuncs.com

API は HTTPS を使用し、POST メソッドで呼び出します。

リクエストパラメーター

パラメーター必須説明
CaptchaVerifyParamStringはいCaptcha スクリプトのコールバックで返されたトークンです。受信したままの状態で API に渡してください — 変更しないでください。
SceneIdStringいいえ現在の検証におけるシナリオ ID です。マルチシナリオ構成では、クライアントが別のシナリオを代わりに使用することを防ぐため、サーバー側でこの値を指定してください。

アーキテクチャ別 CaptchaVerifyParam のフォーマット:

  • V2: {"sceneId":"xxxxxx","certifyId":"xxxxxx","deviceToken":"xxxxxxx==","data":"xxxxxx==","..."}

  • V3: eyJjZXxxxxxxxxxxxxxxnVlfQ==(Base64 エンコード)

レスポンスパラメーター

パラメーター説明
RequestIdStringリクエスト ID です。
SuccessBooleantrue、失敗した場合は false です。
CodeStringHTTP レベルのリターンコードです。
MessageStringリターンコードに関する詳細情報です。
VerifyResultBooleantrue、失敗した場合は false です。
VerifyCodeString検証結果の具体的なコードです。下記の表をご参照ください。
CertifyIDString検証エポック識別子です。初期化時にカスタムの UserCertifyId を指定した場合、その値がここに返されます。それ以外の場合は、サーバーがデフォルトの CertifyID を生成します。

VerifyCode リファレンス

まず VerifyResult を確認し、その後、診断およびログ記録のために VerifyCode を使用してください。

コード意味操作
T001検証に合格しました。リクエストを許可します。
T005テストモードが有効になっており、すべての検証を合格させるように設定されています。本番環境では、Captcha 2.0 コンソール でポリシーのステータスを確認してください。詳細については、「Captcha 2.0 コンソール統合ガイド」をご参照ください。
F001攻撃の疑いあり — リスクコントロールポリシーによりブロックされました。リクエストを拒否します。
F002CaptchaVerifyParam が空です。統合内容を確認してください:フロントエンドは、このパラメーターを変更せずにサーバーに渡す必要があります。
F003CaptchaVerifyParam のフォーマットが無効です。統合コードを確認してください — このパラメーターは API に到達するまでに一切変更してはいけません。
F004テストモードが有効になっており、すべての検証をブロックするように設定されています。Captcha 2.0 コンソール にログインし、このシナリオのポリシーのステータスを調整してください。詳細については、「Captcha 2.0 コンソールシナリオの管理」をご参照ください。
F005sceneIdCaptchaVerifyParam 内で無効です。CaptchaVerifyParam を変更しないでください。統合コードを確認してください。
F006sceneIdCaptchaVerifyParam 内でご利用のアカウントに属していません。Captcha 2.0 コンソール にログインし、シナリオの構成を確認してください。
F008トークンの再利用 — トークンは 1 回のみ送信可能です。ユーザーに CAPTCHA を再度完了させ、新しいトークンを取得するよう促してください。
F009仮想デバイス環境が検出されました(VMware、VirtualBox、Hyper-V、Parallels、AVD、BlueStacks、またはモバイル端末を模倣したデスクトップブラウザ)。リクエストを拒否するか、Captcha 2.0 コンソール でカスタムポリシーを設定してこのチェックを無効化してください。詳細については、「Captcha 2.0 コンソールCaptcha 2.0 コンソールCaptcha 2.0 コンソールCaptcha 2.0 コンソールカスタムポリシーの設定」をご参照ください。
F010同一 IP アドレスからのアクセス頻度が上限を超えました。リクエストを拒否します。必要に応じて、Captcha 2.0 コンソール でしきい値を調整してください。詳細については、「カスタムポリシーの設定」をご参照ください。
F011同一デバイスからのアクセス頻度が上限を超えました。リクエストを拒否します。必要に応じて、Captcha 2.0 コンソール でしきい値を調整してください。詳細については、「カスタムポリシーの設定」をご参照ください。
F012サーバー側リクエスト内の SceneId が、フロントエンドで構成された sceneId と一致しません。サーバー側の SceneId を、Captcha コンソールで構成されたシナリオと一致させる必要があります。
F013CaptchaVerifyParam に必須フィールドが不足しています。CaptchaVerifyParam を変更しないでください。統合コードを確認してください。
F014初期化レコードが見つかりません。初期化と検証の間隔が 20 分を超えている(クライアント側で再初期化が必要)、または初期化リクエストが送信されていない(クライアント側統合を確認)可能性があります。
F015検証インタラクションに失敗しました(例:パズルピースを正しい位置に移動しなかった)。ユーザーに CAPTCHA をリフレッシュして再試行するよう促してください。
F016コンソールで構成された URL 検証ポリシーによりリクエストがブロックされました。Captcha 2.0 コンソール で URL 検証ポリシーを調整してください。詳細については、「カスタムポリシーの設定」をご参照ください。
F017攻撃の疑いあり — 異常なプロトコルまたはパラメーターによりブロックされました。リクエストを拒否します。
F018(V3 のみ)ビジネス署名検証リクエストの CaptchaVerifyParam が再利用されています。各ビジネス署名検証リクエストには、新しいトークンを使用する必要があります。
F019(V3 のみ)ビジネス署名検証リクエストが、動作検証リクエストの 90 秒以上経過後に送信されたか、動作検証リクエストなしで送信されました。ビジネス署名検証リクエストは、動作検証リクエストの 90 秒以内に送信する必要があります。
F020(V3 のみ)ビジネス署名検証リクエストの CaptchaVerifyParam が、シナリオ ID またはユーザーと一致しません。ビジネス署名検証に使用するトークンが、正しいシナリオおよびユーザーに対応しているか確認してください。

HTTP ステータスコード

HTTP ステータスコードメッセージ
200Successリクエストが成功しました。
400MissingParameter必須パラメーターが不足しています。
401InvalidParameterパラメーターが無効です。
403Forbidden.AccountAccessDenied権限がありません。サービスが有効化されていないか、アカウントの支払いが遅延している可能性があります。
403Forbidden.RAMUserAccessDeniedRAM ユーザーに権限が付与されていません。 AliyunYundunAFSFullAccess 権限を付与してください。詳細については、「RAM ロールへの権限付与」をご参照ください。
500InternalError内部エラーが発生しました。リクエストを再試行してください。

コード例

すべての対応言語における、完全かつ実行可能なサーバー側検証のサンプルコードについては、サーバー側インテリジェント検証のサンプルコード(OpenAPI 開発者ポータル)をご参照ください。

次のステップ