スパム対策 reCAPTCHAの v2 と v3 の違いって?

アフィリエイト広告を利用しています

このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です

お問い合わせフォームからのスパムが増えていることで相談を受けまして、reCAPTCHA の話しになりました。

で、よくある話しとして「v2とv3どう違うの?」「v2よりv3のほうが新しくて良いんでしょ」ってことになると思いますので、その辺りについて説明しておこうと思います。

v2とv3の意味

v2ってバージョン2、v3ってバージョン3だよね。
なので、v3のほうが新しいよね

ってことですが、そう考えると罠に落ちます。

「v2」っていう名前の機能
「v3」っていう名前の機能

こう考えたほうがしっくりきます。

v2の場合

v2は次のような流れになります。

1.フォーム画面にアクセス
2.reCAPTCHA が自動的に人間か人間以外であるかを判定
3ー1.人間の判定になった場合は、そのまま送信できる
3ー2.人間以外の判定になった場合は、送信ボタンを押したときに、写真選択などの操作を行い、クリアすることで送信できる

3-2で出てくるのは、「信号機を選択してください」とか「消火栓を選択してください」みたいな、海外の風景がでてきて写真を選択するあのやつです。

2で、人間でないと判定されても、人間にしか解けない質問をだすことで救済しています。

v2の設置難易度

基本的に提供されたコードをペタって貼り付けてちょちょちょいで終わります。

簡単です。

v3の場合

v3は次のようになります。

1.フォーム画面にアクセス
2.reCAPTCHA が自動的に人間か人間以外であるかを判定し、点数を付ける
3.【プログラム】により、2ででた点数を基に処理を分岐する

【プログラム】はこちら側で準備する部分です。
例えば、次のような自由度のある挙動を作りこむことができます。

・点数が90点以上なら送信を許可する
・80 ~ 89点なら、送信はできるが「迷惑フォルダ」的な宛先に送信する。
・50 ~ 79点なら、次なる認証方式に切り替え。
・49点以下なら弾く

このようにv3は、reCAPTCHAが行うのはどのくらい人間味があるか点数をつけるだけで、その点数を基にどうするかはこちらでプログラムを用意する必要があります。

v3の設置方法

上記で言う【プログラム】の部分を作りこまないといけません。

まぁまぁ手間が掛かります。
手間がかかるということは時間とお金がかかるということですね。

reCAPTCHAはv2とv3のどちらが良いのか?

導入のしやすさと人間は確実に通す、という意味では v2 のほうが良いかと思います。

Contact Form 7 なら v3 でも簡単!

WordPressのContact Form 7ですね。

それは正しく見えますが、幻想です。

▼ちなみにこちらが公式です。
https://contactform7.com/ja/recaptcha/

そもそも v3 って導入したあとにあれやこれやとスコアを基にしたプログラムが必要なのにどうなってんだ?
ってことで確認してみましょう。

▼Wordpressのプラグインのページからダウンロードします。
https://ja.wordpress.org/plugins/contact-form-7/

適当なフォルダに解凍すると次のようになります。

contact-form-7/modules/recaptcha/service.php

上図のように辿って service.php をエディタで開きます。

ということで、スコアが 0.50 を基準に人間かボットか判定しているようです。

で、人間ならそのまま送信されるとして、ボットならどうなるんでしょう。

0.50 以下でも、100%絶対にボットであるとは言えません。
悪意のない人間でも 0.50 以下になることがあります。

v3 の仕様としては、スコアを提供するからその後は自分で決めてね。です。

Contact Form7 としては、スコアが 0.50 以下ならボット判定です。

ちなみに、apply_filters になっているので、閾値は 0.50 から好きにカスタマイズできます。
できますが、「カスタマイズできる」なのです。
これはつまり「v3入れただけ」では終わらないということで、その後に残ってる仕事が多々あることを意味します。

もちろんデフォルトの挙動で満足できればそれでOKです。

reCAPTCHAの推奨はv2

ということで、v2がオススメとなります。

予算が十分にあって、お問い合わせフォームやそのスパム対策にそれなりに予算を掛けれるなら、v3 で作りこんで行けば良いと思います。

導入のしやすさと人間は確実に通す、という意味では v2 のほうが良いかと思います。

Contact Form 7 にreCAPTCHAの v2 を導入する

上で、v3を入れるためのリンク先を紹介しましたが、「v3じゃなくv2が良いんでしょ?」ってことですよね。

なので、Contact Form7 に v2 を導入するための記事を紹介しておきます。
https://wind-mill.co.jp/contactform7-recaptcha-v2/

導入サポート

ということで宣伝です。

弊社では有償で導入サポートも行っていますので、お気軽にお問い合わせください。

メールやSNSなどのメッセージで簡単に連絡いただいたあとで、電話していただけると確実です。

特に 03 で始まる番号は、営業電話が面倒で取らない場合がほとんどです。
また、メッセージだけだと時間が掛かるので、最初の最初はお電話からでお願いしたいです。

※電話にはスカイプ・Google Meet・Zoomなども含みます。