お問い合わせはコチラから

Contact form7とreCAPTCHA v3のスパム判定問題

サイト運営

Contact form7のVersion5.1からreCAPTCHA v3になって、世界中で送信できないスパム判定に苦しんでいる人が多くいます。

私もそんな一人でした。

最近、同じようなトラブルを抱えている人から相談を受けて、同じように対処できるかな?と思ったのですが世の中に知られている解決方法をすべて適用しましたが、ダメでした。

なお、よく知られた問題と解決方法については以下のサイトにまとめられています。

今回、あらゆる手を尽くして、結果あきらめたわけですが、その時に行った対処方法をすべてまとめておきます。

Contact form7 プラグインを削除して再インストール

私が、スパム判定で困り果てていた時に解決できた方法がコレです。

単純にプラグインを一度削除して、再度インストールするというものです。理由はよくわからないのですが、世界中で同じように解決できたという報告が多いです。

今回、別の人のサイトでプラグインを削除して何度もインストールしました。
⇒スパム判定は無くなりませんでした。

reCAPTCHA v3のキーを再度取得する

設定されているreCAPTCHA v3のキーではなく、新たにキーを取得しなおして設定することで解決した人もいるそうです。

今回、別の人のサイトでreCAPTCHA v3のキーを再度取得して設定しました。
⇒スパム判定は無くなりませんでした。

reCAPTCHA v3のキーを設定する

古くからContact form7を使用しているユーザーで、reCAPTCHA v2のキーを設定したままreCAPTCHA v3 に対応したContact form7を使用してスパム判定を受けたという事例もありました。

このようなケースでは、reCAPTCHA v3のキーを取得して、プラグインに設定すればよいことになります。

今回、初めから、reCAPTCHA v3のキーを設定していますので、特に対策はしていません。

reCAPTCHA v3のキー取得時のドメイン設定が間違っている

reCAPTCHA v3のキーを取得する時に、設定するドメインを指定する箇所があります。そこで間違ったドメインを設定していると正常に動作しないそうです。

http://などを指定に含めてはいけないということですが、そもそも指定できないようになっていますので、ドメイン自体を間違えない限りこのケースはないかな?と言う感じでした。

また、キーを取得したドメインと異なるドメインでreCAPTCHA v3を使用すると、おそらくreCAPTCHA v3が正常に動作していませんと言う旨のメッセージを出すのではないかと思います。

今回、ドメインを正しく設定しているのか再度チェックしました。
⇒スパム判定は無くなりませんでした。

Contact form7を5.1に戻してみる

そもそも、Contact form7とreCAPTCHA v3の組合せで問題が起き始めたのは、v5.1.1のリリースから顕著になりました。前述の組合せは、v5.1のリリースからです。

Contact form7をv5.1に戻してみることにしました。
⇒スパム判定は無くなりませんでした。

Flamingoを導入してreCAPTCHA v3の判定結果を見てみる

Contact form7は、reCAPTCHAが返すスコアが0.5以下の場合にスパム判定する仕組みを採用しています。

実際の判定スコアについては、プラグインのソースをいじらないと今まで調べることができなかったのですが、Contact form7の新しいバージョンでは同一作者の別プラグインとの組み合わせで判定スコアを知ることができます。

このスパムログ機能を使うには Contact Form 7 5.1.2 以降、ならびに Flamingo 2.0 以降が必要とのことです。

どうしてこのメッセージがスパムなの?
Contact Form 7 は Akismet、reCAPTCHA、コメントブラックリストなど、多種多様な対…

Contact Form 7 は Akismet、reCAPTCHA、コメントブラックリストなど、多種多様な対スパムモジュールを用いてフォームをスパマーの魔の手から守ります。これらのモジュールは大変役に立ちますが、送信されたメッセージがどのモジュールによってブロックされたか、またどういった理由でブロックされたか、どうすれば知ることができるでしょうか。

実際にFlamingoを導入してスパム判定されるたびに記録が残りますので、スパム判定されている理由を知ることができます。

Flamingo
Contact Form 7 の信頼できるメッセージストレージプラグイン。

私が実際に、Contact form7 + reCAPTCHA v3の組合せで全てスパム判定されているサイトでFlamingoを導入したところ常にスコアは(0.00)でした。

reCAPTCHAの判定スコアは0~1の間で数字が小さいほどスパムの可能性が高いという判定です。reCAPTCHAが正常に動いている場合でも、0.2前後の値になるケースがあり、その影響でスパム判定していることが多いそうです。

このようなケースでは、Contact form7のスパム判定閾値を変更することで、スパム判定を回避することができます。

Changing wpcf7_recaptcha_threshold
Changing wpcf7_recaptcha_threshold Resolved bdd (@bws-online) 5 years, 8 months ago I see this listed for version 5.1.2:...
add_filter( 'wpcf7_recaptcha_threshold', function( $threshold ) { return 0.30; }, 10, 1 );

しかし、0という結果は、reCAPTCHAがまともに動いていないという結果を示していて、Contact form7の閾値をマイナスにしない限り、必ずスパム判定になります。

reCAPTCHAのJavascriptが正常に動作していないとこの結果になります。多くの場合は非同期読み込みによる影響だと思います。詳細は以下の記事を参照ください。

まとめ

今回色々調べてみて、その結果すべてNGで疲れ果てました。

Contact form7としては、reCAPTCHA v3が返すスコアをもとに判定しているだけなので、多くの場合はreCAPTCHA v3が正常に動作していないだけ、というのがプラグイン側のスタンスだと思います。

なぜ、reCAPTCHA v3が正常に動作しないのか?というのを突き詰めていくのは大変な作業です。

そもそもContact form7とreCAPTCHA v3の組合せで使い続けなければならない理由は何なのか?というのをよく考えるべきだろうと思います。

reCAPTCHA v2で困っていたわけでもないので、reCAPTCHA v3に無理やり切り替える必要もないと思うわけです。Contact form7でreCAPTCHA v3を有効にすると全ページでreCAPTCHA v3が表示されてうっとおしいという別の問題もあります。

reCAPTCHA v2を最新のContact from7と使えるようにするプラグインも当然ありますので、丸一日かけて不毛な解析をするよりも、スパッとreCAPTCHA v2に切り替えてしまう方が良いと思いました。

ReCaptcha v2 for Contact Form 7
Adds reCaptcha v2 from Contact Form 7 5.0.5 that was dropped on Contact Form 7 5.1
この記事を書いた人
ブーン

はるばる日本よりオランダ王国へやってまいりました。
自分の経験が少しでも参考になれば嬉しいです。
お問い合わせは、『こちら』からお願い致します。

\ブーンをフォロー/
スポンサーリンク
サイト運営
\シェアお願いします!/
\ブーンをフォロー/
こんな記事も読まれています

失敗しないレンタルサーバーランキング

mixhost

不正アクセスに強くて使いやすいおススメサーバー
\本サイトで利用中/
メリット①:自動ウィルス駆除対応
メリット②:サイトの表示速度が速い!
メリット③:転送量の上限が多い!
メリット④:自由にプラン変更ができ、アクセス増にも対応できる!
メリット⑤:バックアップデータが無料で復元できる!
メリット⑥:Wordpressが簡単にインストールできる!
メリット⑦:どのプランでも初期費用が無料!
メリット⑧:10日間の無料お試し期間と30日の返金保証!

Conoha Wing

国内Wordpress最速の最強サーバー
メリット①:圧倒的な表示速度
メリット②:レンタルサーバーと独自ドメインがセットでお得◎
メリット③:プラン変更はすべてのプランで自由自在
メリット④:一か月の利用転送量の制限が緩い(9TB~)
メリット⑤:WordPresサイトの移行が簡単

エックスサーバー

国内シェアNo1の安定性と実績が魅力。ALL SSDで死角なしの万能サーバー。
メリット①:サイトの表示速度が安定して速い!
メリット②:アクセス負荷に強くて安定性が高い!
メリット③:24時間365日の充実サポートで安心!電話サポートもあり!
メリット④:転送量が多い!
メリット⑤:自動バックアップ機能付き!
メリット⑥:WordPressが簡単にインストールできる!
メリット⑦:10日の無料お試し期間がある!

タイトルとURLをコピーしました