「サイトがreCaptchaトークンを検証していない~」と出てInvisible reCaptchaが機能しない、スパムがすり抜ける[Contact Form 7][WordPress]

WordPress

問い合わせフォームやコメントフォームをスパムから保護するのに重宝するreCaptcha(リキャプチャ)。問い合わせフォームを設置しない場合もログインフォームや登録フォームの保護などセキュリティ面の強化にもなりますので導入必須の機能と言えるでしょう。

そんな中、設定したはずのInvisible reCaptchaをスパムが素通りしはじめたので備忘録がてらまとめます。

スポンサーリンク
スポンサーリンク

結論

Invisible reCaptchaの開発は終了したようです。最新のWordPressに対応しないので代替を探す必要があります。プラグインの公式を見れば英語ながらレビュー欄にコメントがあります。しかしながら、『Invisible reCaptcha』で検索するとどのサイトでも現役のプラグインとして紹介されています。

こちらのプラグインについては早々に削除しましょう。以下の記事はそんな事とはつゆ知らず悪戦苦闘する様子を綴ったログです。

そもそもreCaptchaとは?

「私はロボットではありません」「信号機のタイルをすべて選択して下さい」といった『V2』を経て、とうとう一切の確認アルゴリズムを不可視化した強力なアンチスパム(V3)。Googleが提供するサービスです。

WordPressに導入するにはInvisible reCaptchaが軽量で高機能です。

Invisible reCaptcha for WordPress
Invisible reCaptcha for WordPress プラグインはあなたのサイトをGoogleの新しい Invisible reCaptcha によって悪意のあるスパムボットから守ります。

発生の経緯

「Invisible reCaptcha」とContactForm7の「インテグレーション」を競合させたことに端を発します。

Invisible reCaptcha

Invisible reCaptchaはWordPressにreCaptchaを導入する手段の一つです。V3の時点である意味不可視化が成されたのでInvisible reCaptcha=reCaptcha(V3)だと勘違いしそうですが、後述するContact Form7の機能でも導入できます。

reCaptchaを使う上で必須に見える

Contact Form 7のインテグレーション機能

上記の勘違いで、Invisible reCaptchaを一通り有効にした上でContact Form 7の「インテグレーションのセットアップ」も設定しました。ところがこのインテグレーション、セットアップするとサイト全体を保護します。フォームだけじゃないの?

「フォームでreCaptchaを有効」にする設定に見える

実際、バージョン7.5.1以前のContact Form7ではInvisible reCaptchaを導入した上で問い合わせフォームにタグ[reCaptcha]を設置するという手順でした。

PageSpeed Insightsから重複を確認、削除

サイトの軽量化、高速化のためインサイトを確認した際にrecaptcha__ja.jsが2つリストされていたので重複に気づきました。

PageSpeed Insights

で、このインテグレーションを削除したところ、reCaptchaの挙動がおかしくなります。

極端に少ない検出数と高い不審なリクエスト率

動作はしているのでそれ以上どうにもしようもないのですが、スパムが毎日必ずすり抜けてくるのでたまらずInvisible側を無効にしてContactForm側からサイト全体の保護に切り替えました。一旦、泣き寝入りです。動作は正常に戻りました。

記録が残っていませんが、このあたりで「サイトがreCaptchaトークンを検証していないことが検出されました」エラーが出ていたと思います。見た目上不備はなく、再度「保存する」など押しても状況変わらずでした。

解決の流れ

そんなこんなしてるとGoogle Search Consoleから久々にお達しがありました。

  • LCP の問題: 2.5秒 超(モバイル)

Invisible reCaptchaで運用してたときは合格してたことを見るとやはり全体保護は処理として重いようです。多少スパムが漏れてもサイトの評価には代えられない…ということでContactFormのインテグレーションを削除、代わりに無効化していたInvisible reCaptchaを再セットアップしました。

するとどうしたことか、動作の怪しかったInvisible reCaptchaは息を吹き返し、漏れ入り込んでたスパムもピタリと止まりました。

いたって正常なグラフ推移

ん?これはまさか…

  • Invisible reCaptchaをセットアップ(Google reCaptchaと連携)
  • Contact Form7のインテグレーション有効(連携を更新)
  • ここで重複に気づく
  • Contact Form7のインテグレーション無効(連携が解除)
  • Invisible reCaptchaがいまいち機能しない(連携されてない?
  • Invisible reCaptchaを無効化(Contact Form7側を連携)
  • 機能するけど重い
  • Contact Form7のインテグレーション無効(連携が解除)
  • Invisible reCaptchaをセットアップ(Google reCaptchaと連携)

といった流れなのでは…

とりあえずまとめ

  • Contact Form7のreCaptchaはサイト全体を保護する。(Invisible reCaptchaと競合する)
  • 競合(重複)した状態から片方を解除しても勝手には権限がスライドはしない。
  • Invisible reCaptchaのほうがサイトが軽量になる。

ただし現時点でInvisible reCaptchaは更新が2年間止まってるので後継プラグインも検討すべし。

CAPTCHA 4WP – Antispam CAPTCHA solution for WordPress
Use CAPTCHA to stop spam and allow customers & users to interact with your website easily. Block fake accounts and orders. Avoid false positives.

追記

と喜んだのもつかの間、1週間もしないうちにアクセスを検出しなくなりスパムも漏れ入るようになりました。時間差をもって影響が出るのが謎ですが、どうもInvisible reCaptchaに脆弱性のようなものがあるように感じます。

突然ガクンと減るグラフ

また、Contact Form7のスパムログを見ると正規メールにはない項目「token」がありまるで合鍵を使って通り抜けたかのような印象…これはハックされてるのでは

バレた?

【2021/11/30追記】Invisible reCaptcha開発終了してました。これまでありがとう…

スポンサーリンク
スポンサーリンク
WordPress
唐津市のパソコン修理、設定サポートなどおまかせ下さい!
ネット回線の見直しや購入PCの選定など、故障以外にも日常のご不便やお困りごともご相談ください。ご利用環境にあった最適なプランをご提案します。
スポンサーリンク
スポンサーリンク
PCヨーナルをフォローする
PCヨーナル

コメント

スポンサーリンク
スポンサーリンク
タイトルとURLをコピーしました