Google reCAPTCHAのv2とv3の違いのお話

  • このエントリーをはてなブックマークに追加

Google reCAPTCHA(リキャプチャ)とはGoogleが提供している認証システムで、現在はv2とv3が用意されています。

なんとなく「v3ってv2の進化版でしょ?」という感じがするのですが、調べてみるとどうもそうとも言い切れないので、まとめてみました。

ちなみに無料で利用できますが大規模サイトやアクセス数の多いサイトはエンタープライズ版を利用する必要があるみたいです。

reCAPTCHAの登録について

reCAPTHCAを使用登録する前にGoogleのサービスですのでGoogleアカウントが必要です。
事前に作成取得しておきましょう。

取得後に、reCAPTCHAの管理画面からサイトを登録します。

https://www.google.com/recaptcha/admin/create

登録はドメイン単位ですが、複数のドメインを登録できるので、テスト環境などがある場合は同じ情報で利用できます。


ラベル サイトを識別するための名前なのでドメインかサイト名を設定しましょう
reCAPTCHAタイプ reCAPTCHAのタイプを選択します v2かv3のどちらかを選択できます。
ドメイン 利用するドメインを入力します。(複数登録可能)
オーナー Googleアカウントのメールアドレスを入れると、そのアカウントでも利用することができます。最初に設定してあとからクライアントのアカウントに切り替えることも可能

その後「reCAPTCHA 利用条件に同意する」にチェックを入れて「送信」を押すと登録が完了します。
登録できると「reCAPTCHAのキー」が発行されますので、それぞれ保存してください。
  • サイトキー … HTMLに仕込むキーとなります。
  • シークレットキー … サイトとreCAPTCHA間の通信で使用します。こちらはサイト上に公開しないでください。
以上でreCAPTCHAの登録が完了しました。

結局reCAPTCHA v3とreCAPTCHA v2、どっちを使えばいいの?

先ほどの登録でreCAPTCHA v2 か v3を選択してもらいましたが、じゃあどちらがいいんだろうという話になります。

決してv3 > v2 になるわけではなく、用途によって使い分けが必要だと思います。

reCAPTCHA v2

reCAPTCHA v2はユーザー側にアクションを行ってもらうことで自分はロボット(コレではない)ではないよと証明してもらう認証方式です。


利点としてはユーザーにアクションを行ってもらうことで、かなり高い精度で判定ができます。
またユーザーにreCAPTCHAの存在を意識させることで「お、このサイトはちゃんとしてるな」と思わせることができるかもしれません。

欠点としてはわざわざ「ロボットではありません」にチェックをさせることの煩わしさがあります。

また、怪しいユーザーの場合は画像による認証があったりするので、特に画面の小さなスマホの場合だと、押しミスによる認証失敗が多発して離脱されるケースもあります。

reCAPTCHA v3

reCAPCHA v3はユーザー側からアクションを起こしてもらうことはなく、ユーザーがサイトにアクセスした時点でユーザーの環境や行動パターンによりスコアが自動的に設定され、そのスコアによって許可するかどうか判定します。


導入するとブラウザの右端に表示され、画面上にreCAPTCHAのチェックボックスは存在しません。

利点としてはユーザーからすると何もアクションがなく自動的に判定されるため、チェックを入れるなどのアクションや認証されていることを自覚することなく進めるのでストレスがないと思います。
特にスマホの場合はチェックボックスを押すのも意外と大変なのでスマホサイトであればv3でいいかもしれません。

欠点としては先ほどのスコアが低い場合はbotと判定され、そこから先に進めなく、しかもどうすればよいかのフォローができないため、強制的に離脱させられる可能性があります。

スコアに関しては細かな判定基準は出ていないのですが、「1.0から0.0までの数値が返ってきて1.0に近いほど人間であろう、0.0に近いほどbotであろう」という事らしいです。

このスコアの閾値(判定基準)は設定で行えるので、低くして間口を広げるか、高くしてセキュリティを高めるかの判断は難しいです。

じゃあどちらが便利?

これに関しては用途とリスクをどう取るかということになりそうです。

個人的にはreCAPTCHAのスコアに対する理解とご納得をしたいただく場合はv3を、それ以外は基本的にv2を導入した方がよいかなと思います。

また、スマホサイトの場合は入力がシンプルなv3を、PCサイトの場合はv2でという使い分けもいいかもしれません。

いずれにせよGoogleもv2を無くす予定はなさそうなので、しばらくは併用していくのがよいかなと思います。

 

執筆者:松本[ エンジニア ]

関連記事

プログラミング

【PHP】ソーシャルログインに対応したお話(LINEログイン編) ②

前回はLINE Developersでチャネル登録までを行いました。 今回は実際にPHPでログインを実装していきます。 目次1 初期設定を定数にする2 LINE ログインのURLを作成する3 コールバック時の処理4 最後に 初期設定を定数にする 最初にdefineでチャネル登録した情報やAPIのURLを定義します。 メールアドレスを取得したい場合はLINE_SCOPEに「email」を追記してください。 LINE ログインのURLを作成する LINEログインに利用するログイン […]

Webサービス

【PHP】ソーシャルログインに対応したお話(LINEログイン編) ①

今回はLINEログインです。 LINEログインは他のソーシャルログインと違って、電話番号必須なので、ユーザーがアカウントを無限に発行するということがなく、しかもOSに関係なくアカウントを使用できるので、特にB2Cサービスを考える場合には是非導入を進めたいと思います。 逆に法人サービスで使う場合、法人担当者が個人のLINEアカウントを使用することはないと思うので、あくまで個人向けサービスがよいかなと思います。 LINEログインについての概要はこちらに詳しく書いています。 htt […]

プログラミング

【PHP】ソーシャルログインに対応したお話(Apple ID編) ②

目次1 前回のおさらい2 実装に必要な情報3 PHPで実装してみる4 戻り先の処理4.1 composerでライブラリのインストール4.2 処理の説明4.3 実際のソース5 最後に 前回のおさらい 前回は「Appleでサインイン」を実装する前の下準備をまとめました。 今回は実際にPHPで実装をしたいと思います。 なお、ソーシャルログインについて実はFirebase上でできるぽいのですが、今回はそれを使わずに実装したいと思います。 実装に必要な情報 前回Apple Develo […]

株式会社8bit (エイトビット)

東京都目黒区でWebサイト制作、Webシステム開発などを行っております。
コーポレートサイトやWebサービスの企画・提案を得意としており、自社での経験を元にアイデアをカタチにするお手伝いをさせていただいております。

Web制作に関するご相談はお気軽にどうぞ

弊社に制作をご依頼いただく際の費用感をご確認いただける、
見積りシミュレーションをご用意いたしました。