reCAPTCHA v3



  • この記事は、reCAPTCHAに関する記事を和訳したものです。
  • 原文: reCAPTCHA v3
  • 元記事のライセンスは CC-BYで、この和訳記事のライセンスは CC-BYです。
  • 自己責任でご利用ください。
  • 和訳した時期は 2019年6月ころです。

reCAPTCHA v3は、ユーザの操作なしでそれぞれのリクエストのスコアを返します。 スコアは、あなたのサイトとのやりとりに基づいていて、それは、あなたが、あなたのサイトのために適切な行動をとることを可能にします。 reCAPTCHA v3キーをここで登録してください。

このページでは、あなたのウェブページ上で reCAPTCHA v3を有効にし、カスタマイズする方法を説明します。

フロントエンドの統合

  <script src="https://www.google.com/recaptcha/api.js?render=reCAPTCHA_site_key"></script>
  <script>
  grecaptcha.ready(function() {
      grecaptcha.execute('reCAPTCHA_site_key', {action: 'homepage'}).then(function(token) {
         ...
      });
  });
  </script>
  1. あなたのサイトキーで JavaScript APIを読み込みます
  2. アクション時、あるいは、ページが読み込まれたとき、grecaptcha.executeを呼び出します
  3. 検証のリクエストとともに、あなたのバックエンドにトークンを送信します

ヒント

grecaptcha.ready()は、reCAPTCHAライブラリが読み込まれるとすぐに、あなたの関数を実行するでしょう。 api.jsとの競合状態を回避するには、grecaptchaを呼び出すあなたのスクリプトより前に api.jsをインクルードする、あるいは、v2 APIで定義された onloadコールバックを使用し続けることのいずれかができます。

あなたのウェブサイトへの配置

reCAPTCHA v3は、あなたのユーザを中断させることがないでしょうから、変換に影響なしに好きなときにそれを実行することができます。 reCAPTCHAは、あなたのサイトとのやりとりについて最もコンテキストを持っているとき、最もよく動作します、それは、正当的および乱用的な振る舞いの両方を見ることから来ます。 このため、分析のためのページのバックグラウンドと同様に、フォームあるいはアクション上に reCAPTCHA検証を含めることをお勧めします。

備考: 同じページ上で異なるアクションをしたいとき、難度でも reCAPTCHAを実行することができます。

スコアを解釈する

reCAPTCHA v3は、スコアを返します(1.0は、良いやりとりである可能性が非常に高く、0.0は、ボットである可能性が非常に高いです)。 スコアに基づいて、あなたは、あなたのサイトのコンテキストにてさまざまな行動をとることができます。 すべてのサイトは異なりますが、以下は、サイトがスコアを使用する方法の幾つかの例です。 以下の例のように、トラフィックをブロックする代わりに、あなたのサイトをよりよく保護するために、シーンの裏側で行動をとります。

ユースケース 推奨
ホームページ スクレーパーをフィルタリングしながら、管理者コンソール上であなたのトラフィックのまとまりがあるビューを見ます。
ログイン 低いスコアを伴う場合、クレデンシャルスタッフィング攻撃を防ぐために、2ファクタ認証、あるいは電子メール認証を必要とします。
ソーシャル 虐待的なユーザからの未回答の友達リクエストを制限し、モデレートに危険なコメントを送信します。
電子商取引 ボットの前にあなたの実際の売上を置き、危険な取引を識別します。

reCAPTCHAは、あなたのサイト上の実際のトラフィックを見ることで学習します。 このため、ステージング環境あるいは実装直後のスコアは、本番とは異なる可能性があります。 reCAPTCHA v3はユーザフローを中断させることはないので、行動をとることなく、まず reCAPTCHAを実行させ、それから、管理コンソールにてあなたのトラフィックを確認することによって、閾値を決定することができます。 デフォルトでは、0.5の閾値を使用することができます。

アクション

reCAPTCHA v3では、新しい概念: アクションが導入されました。 あなたが reCAPTCHAを実行するそれぞれの場所にてアクション名を指定すると、2つの新しい機能が有効になります:

  • 管理コンソールのあなたの上位 10件のアクションに関するデータの詳細な内訳
  • アクションのコンテキストに基づいた適応型リスク分析(不正な振る舞いは異なる可能性があります)

重要なことに、あなたが reCAPTCHA応答を検証するとき、あなたはアクション名が期待したものとマッチすることも検証する必要があります。

  <script>
  grecaptcha.ready(function() {
      grecaptcha.execute('reCAPTCHA_site_key', {action: 'homepage'});
  });
  </script>

備考: アクションは英数字およびスラッシュのみを含むことができ、ユーザ固有のものであってはなりません。

サイト検証応答

reCAPTCHA v2あるいは不可視の reCAPTCHAと同様に、応答トークンを検証するようリクエストしてください。

応答は JSONオブジェクトです:

{
  "success": true|false,      // whether this request was a valid reCAPTCHA token for your site
  "score": number             // the score for this request (0.0 - 1.0)
  "action": string            // the action name for this request (important to verify)
  "challenge_ts": timestamp,  // timestamp of the challenge load (ISO format yyyy-MM-dd'T'HH:mm:ssZZ)
  "hostname": string,         // the hostname of the site where the reCAPTCHA was solved
  "error-codes": [...]        // optional
}