45
16

More than 3 years have passed since last update.

reCAPTCHA v2 と v3 の違い

Last updated at Posted at 2021-03-28

この記事では reCAPTCHA v2 と v3 の違いについて説明します。

reCAPTCHA v2 には、Invisible、Checkbox、Android の3種類があります。この記事では v2 Invisible を主に扱います。Checkbox は「私はロボットではありません」のチェックボックスを見せるタイプ、Android はアプリに組み込むタイプで、これらを使いたい場合は、特に迷うことはないと思います。

https://developers.google.com/recaptcha/docs/invisible
image.png

v3 は v2 を完全に置き換えるものではありません。v2 は、今後も並行してセキュリティおよびユーザビリティの改善とサポートを行うと、FAQ にあります。

見た目は一緒

v2 Invisible と v3 の見た目は同じです。デフォルトでは、画面の横にバッジが表示されます。このバッジは消すこともできます

image.png

何が違うのか

v2 と v3 の最も大きな違いは、怪しいリクエストを通すかどうかという点です。

v2 は、人間かボットか怪しいリクエストが来たら、画像認証のクイズを出して、ボットをシャットアウトしようとします。

image.png

一方、v3 には、画像認証を出す機能はありません。人間だろうがボットだろうが、全てのリクエストを素通しにします。代わりに、リクエストに対して「人間らしさ」のスコアを設定します。

recaptcha.png

v3 はパワーユーザー向け

FAQ の冒頭に書かれている通り、v3 はパワーユーザー向けです。スコアに応じた対処方法を、自前で実装する必要があります。

低いスコアが出た場合の対処方法は、例えば以下のようなものが考えられます。

足切りというのは、スコアが悪かったら、ボットだろうが人間だろうが、リクエストを拒絶するという意味です。

recaptcha2.png

本当に足切りしていいの?

追加で開発を行うことなく v3 を採用しようとすると、大抵は「足切り」を行うことになると思います。その場合は、導入しようとしているサービスで本当に足切りが許されるのかどうか、よく検討する必要があります。

例えば、お客様からの問い合わせやクレームを受け付けるフォームで「あなたは人間らしくないからエラーにします」と言って許されるのかどうか、ということです。何人のお客様がエラーで離脱したか、本当のところはわかりません。

スパムフォルダのような機能があるなら、v3 は非常に良い選択肢です。ただし、その場合は、誤検知を定期的にチェックしなければなりません。

導入先の違い

v3 の導入ページ

v3 はユーザのインタラクションを邪魔しないので、できるだけ複数のページに導入することが推奨されています。

例えば、WordPress の人気プラグイン Contact Form 7 ではv3 を全ページに導入する 前提で足切りを行っているようでした。v2 を捨てて v3 に移行した意図はわかりませんが、全ページに入れれば十分な精度が出せるという判断なのかもしれません。

v2 の導入ページ

v2 は、アクションが起きる特定のページにだけ導入すれば十分です。他に入れられる場所がありません。

reCAPTCHA トークンは有効期限が 2 分と非常に短いので、確認画面がある場合は、確認画面に入れるのが適切です。トークンを、フォームから確認画面へと持ち回るべきではありません。

v2 Invisible では、送信ボタンを押してからサーバで検証するまでの期間が 2 分です。v2 Checkbox は、チェックを入れた状態でしばらく放置すると、勝手にチェックが外れます。

まとめ

v2 と v3 は守備範囲が違うので、使い分けが必要です。検索すると v3 が v2 の改良版・高機能版だという解説が山ほど見つかりますが、間違いです。

v3 単体では、v2 のようにボットを排除することはできません。v2 の画像認証の代わりに、自力でなんとかする(できる)のが v3 です。

単にお問い合わせフォームやコメント、ユーザ登録などでスパムを避けたい場合は、v2 Invisible を使う方が簡単です。

45
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
45
16