元Webデザイナー兼コーダーの備忘録

HTML,CSSの入門記事やブログのカスタマイズについてアウトプットしています。

 メニュー

reCAPTCHA(リキャプチャ)v3とは

reCAPTCHA v3について調べて欲しいとお達しがあったので、調べました。reCAPTCHA v2とv3で、思想の違いが垣間見えて面白かったです。せっかくなので、調べた内容を記事にしました。

調査の経緯

reCAPTCHA v3をローカルで導入したが、どんなテストをしたら良いのか分からないので調べて欲しいとのことでした。詳しく聞いてみると、reCAPTCHA v3を導入したのはいいもののbotを弾くところを再現できないので、botを弾くロジックを知りたいということでした。

余談ですが、「reCAPTCHA v3」という単語を聞いたとき、仮面ライダーが思い浮かびました。

結論

reCAPTCHA v3は、トークンチェックの結果とアクションスコアを返します。botを弾くロジックは、自分たちのサーバーに自分たちで実装します。導入しただけでは、botを弾きません。

reCAPTCHA v3とは

  • AIがユーザのページ内での行動にスコア付けし、人間かbotか判定する。
  • 利用者が増えるとスコアの精度が上がる。
  • スコアにより、bot判定時の動作などを自前で実装する。

構成

分かりやすい構成図があったので、下記の参考サイトを参照ください。

構成をテキストで表すと以下です。

  1. ユーザ:送信ボタンをクリック
  2. クライアント:サイトキーを使ってGoogleサーバにトークンを要求
  3. Googleサーバ:トークン発行
  4. クライアント:トークンと入力データをセットにして自サーバに送信
  5. 自サーバ:シークレットキーを使ってGoogleサーバにトークンをチェックしてもらう
  6. Googleサーバ:OK,NGを自サーバに返す
    1. OKの場合は、アクションとスコアも返す
  7. 自サーバ:OKの場合、スコアをチェック
  8. 自サーバ:スコアチェックがONの場合、次の処理に進む

メリット

  • ユーザが認証操作しなくて良い
  • AIによってスコアの精度が上がる
    • 学習させるため、複数のページに導入すると良い

デメリット

サイト運営者の運用負担が大きい。

  • 閾値の検討
  • bot判定した場合の処理を実装する
  • サイト運営者側でbotによる攻撃への対応をする
    • ログインフォームの場合:2段階認証など
    • コメントフォームの場合:管理者が確認するまで、掲示板に掲載しない

reCAPTCHA v1とv2の紹介

  • v1:歪んだ文字が書かれている画像を見て、何が書かれているのか入力して認証する。
  • v2:「○○の画像を選択して、確認をクリックしてください。」で認証する。

reCAPTCHA v2とv3の違い

  • v2:人間だけ認証を通す
  • v3:全員通してスコアを付ける
    • スコアに応じた対処を自前で実装する。
    • 低いスコアが出た場合
      • 閾値を設定して、足切りする
        • 足切りして良いのか検討する
        • 正常なユーザがbot判定された場合のお問い合わせ先、登録方法を準備する
      • 「2段階認証」や「管理者が確認するまで、掲示板に掲載しない」などの対応
      • お問い合わせをスパムフォルダに保存

低スコアが付く可能性のある操作は分からない

テストをしている方がいたので、そちらの記事を参照してください。

結論、どのような操作をするとスコアが低くなるのかは分かりません。

reCAPTCHA v2とv3の使い分け

v2とv3でユーザの操作が変わります。そのため、2つを使い分けることも考えられます。例えば、人間なのにv3でbotだと判断されて弾かれた場合に、次の認証としてv2を使うということができます。

テストについて

テスト箇所として大雑把に以下の2つを挙げます。

まとめ

認証するときに行っていた「○○の画像を選択して、確認をクリックしてください。」に名前があるとことを初めて知りました。今回、調べてみていい勉強になりました。v2とv3で思想の違いを知りました。

その他の参考サイト