Invisible reCaptchaの設定画面がおかしい・エラーが出るときの対処法

当ページのリンクには広告が含まれています。
Invisible reCaptcha Error
  • Invisible reCaptchaプラグインの設定画面がすべて「設定」ボタンになってしまう
  • サイトのトップページに謎の英語(Warning)が表示される

WordPressでブログを始めようとして、上記の謎の現象でお悩みでしょうか。

原因はInvisible reCaptchaプラグイン。

WordPressが動作するプログラミング言語PHPのバージョンが8.0以上の場合に、Invisible reCaptchaプラグインに発生する不具合です。

結論としてはInvisible reCaptchaの使用をやめて他のプラグインを使うしかありません

Invisible reCaptchaの開発者が不具合修正しない限り、今後Invisible reCaptchaプラグインを使用することはできません。

この記事では前半でサイトを正常に戻すための対処方法を、後半でreCaptcha機能と今回の現象を詳しく解説していきます。

原因は今は知らなくても良いからとにかくエラーを消したいという方は、前半の「Invisible reCaptchaエラーの対処方法」をどうぞ。

この記事の前提条件
  • WordPressサイトでInvisible reCaptchaプラグインを使っている(使おうとしている)
  • Google reCAPTCHAでサイトキーとシークレットキーの発行完了している
  • お問い合わせフォームはContact Form7プラグインを使用している

※Google reCAPTCHAのサイトキー、シークレットキー発行手順は本記事では解説しません。

目次

Invisible reCaptcha 不具合の対処方法

今回発生する不具合は大きく分けて次の2つです。

  • トップページにWarningが表示される
  • 設定画面のボタンがすべて「設定」になってしまう

Invisible reCaptchaのWarningメッセージ

トップページに表示されるWarningは以下のようなもの。

invisiblerecaptcha-error

Warning: The magic method InvisibleReCaptcha\MchLib\Plugin\MchBasePublicPlugin::__wakeup() must have public visibility in /home/xxxxxxxx/public_html/xxxxxxxx.com/cc/wp-content/plugins/invisible-recaptcha/includes/plugin/MchBasePublicPlugin.php on line 37

xxxxxxxx 部分はサイトによって異なります。

もう一つは設定画面のボタンがすべて「設定」になってしまうという現象です。

あなたのサイトの不具合と同じでしょうか。

次から対処方法を解説してきます。

Invisible reCaptchaの設定をひかえてから停止する

Invisible reCaptchaを停止すればエラーは消えます

トップ画面に謎の文字列が表示されている状態はサイトにとって非常によろしくないので、一刻も早く直しましょう。

Invisible reCaptchaにサイト鍵と秘密鍵を設定済みの場合は設定をひかえておくと代替プラグインへの移行がスムーズです。

設定をひかえる

「設定」⇒「Invisible reCaptcha」から設定画面を開きます。

サイト鍵と秘密鍵に入力してある値を、メモ帳にコピーするなどしてひかえておいてください。この後すぐに使います。

りょうこ

Invisible reCaptchaに設定する前でしたら、Google reCAPTCHAのサイトのv3 Admin Consoleで、ご自身のサイトのサイトキーとシークレットキーを確認すればOKです。

プラグインを停止する

プラグイン画面のInvisible reCaptchaの「無効化」ボタンで、無効化します。

無効化するとトップページのWarningは消えました。

代替えプラグインのインストール&設定

reChaptcha機能を使用できるプラグインは複数あります。

本記事では次の2つの組み合わせでInvisible reCaptchaと同等の機能を実現する方法を紹介します。

  • reCaptcha by BestWebSoft
  • Contact Form 7のインテグレーション機能
りょうこ

2つ組み合わせなければならない理由は、記事の後半で説明しますね

reCaptcha by bestWebSoft のインストール

1)プラグインの「新規追加」から、reCaptcha by bestWebSoftをインストールし「有効化」します。

2)「Settings」から設定画面を開きます。

reCaptchabyBestWebSoft-settings

3)設定します。

① reCaptcha Version:Version 3

② SiteKey:控えておいたサイト鍵、 Secret Key:控えておいた秘密鍵

③Enable reCaptcha for:すべてにチェック(必要に応じて調整可)

4)画面下のHide reCaptcha Badge設定をお好みに合わせて変更します。チェックを入れるとreCaptchaで守られている画面のアイコン表示が文章に変わります

■Hide reCaptcha Badgeにチェックをした場合:文章表示

reCaptchabyBestWebSoft login form

Hide reCaptcha Badgeにチェックをしない場合:アイコン表示

おまけ:reCaptcha by bestWebSoft を入れたらログインできなくなった場合

reCaptcha by bestWebSoftプラグインを入れたログイン画面で、以下のエラーが赤字で表示されログインできなくなることがあります。

The reCAPTCHA verification period has expired. please reload the page.

これはreCAPTCHA Version 3のKeyが2分経過して期限切れになったことにより表示されています。

英語のメッセージの通りページを更新(リロード)するとエラーが消え、ログインできるようになります

大抵のブラウザでは[F5]キーでページのリロードができます。お試しください。

Contact Form7の設定

reCaptcha by BestWebSoftの無料版は、お問い合わせフォームをreCaptcha機能で守ってくれません。

そこでお問い合わせフォームプラグインに備わっているreCaptcha設定機能を使うことにしましょう。

Contact Form7の場合は次の手順で設定できます。

1)「お問い合わせ」⇒「インテグレーション」⇒「reCAPTCHA」⇒「インテグレーションのセットアップ」

2)サイトキー:控えておいたサイト鍵、シークレットキー:控えておいた秘密鍵 を設定し「変更を保存」

(中級者以上向け)Contact Form7のreCAPTCHAバッジがうっとおしい場合

Contact Form7のreCAPTCHA機能をONにすると、すべてのページの右下に強制的にreCAPTCHA バッジが表示されます。これがちょっとうるさく感じるかもしれません。

reCAPTCHA バッジの必要性については、reCAPTCHAのよくある質問に以下の解説があります。

reCAPTCHA バッジを非表示にします。どうすればよいですか?

ユーザーフローに目に見える形で reCAPTCHA のブランドを含めていれば、バッジを非表示にできます。次のテキストを含めてください。

This site is protected by reCAPTCHA and the Google
    <a href="https://policies.google.com/privacy">Privacy Policy</a> and
    <a href="https://policies.google.com/terms">Terms of Service</a> apply.

バッジを非表示にする場合は
.grecaptcha-badge { visibility: hidden; }
を使用して下さい。
Google reCAPTCHA よくある質問

テキストが含まれていればバッジを非表示にできるということです。

「外観」→「カスタマイズ」→「追加CSS」に上記のバッジ非表示のCSSを設定し、必要なページにのみテキストを表示させるという方法が取れます。

.grecaptcha-badge { visibility: hidden; }

■お問い合わせページ

reCaptcha by bestWebSoft プラグインの範囲外の為、上記テキストをお問い合わせページ(固定ページ)に手動で追加する。

■各投稿のコメント

コメント機能を有効にしている場合は、reCaptcha by bestWebSoft プラグインのHide reCaptcha Badge設定をONにして、テキストを表示させる。

りょうこ

以上でInvisible reCaptchaで実現していた機能はすべて代替えできました。

Invisible reCaptchaに不具合が起こる条件

Invisible reCaptchaに今回の不具合が発生する条件は、WordPressが動作しているサーバのPHPバージョンが8.0以上の場合です。

PHPとは主にWebアプリケーション開発に使用されるオープンソースのサーバーサイドスクリプト言語のこと。多くのWebサイトやWebアプリケーションで使用されており、WordPressもその一つです。

PHPバージョンの確認方法

■ ConoHaWINGの場合

「サイト管理」→「サイト設定」→「応用設定」→「PHP設定」→「PHPバージョン」

■エックスサーバーの場合

PHPバージョンを7.4に戻せばよい?

PHP8.0の1つ前のバージョンはPHP7.4です。

PHP7.4に戻せば本記事で解説している問題は一旦発生しなくなりますが、7.4に戻すことはオススメしません

理由は次の2つです。

  • PHP7.4はセキュリティサポートが終了している
  • PHP8以上はPHP7.4よりも処理速度が速い

1つずつ見ていきましょう

PHP7.4はセキュリティサポートが終了している

PHP7.4はセキュリティサポートが2022年11月28日に終了しています。(参考: PHP公式サイト Supported Versions

セキュリティサポートが終了すると、PHP7.4に対する新しいセキュリティアップデートは提供されなくなります。

インターネットに公開しているサイトで、セキュリティの問題があるソフトウェアの使用は絶対に避けなければなりません

現在はPHP7.4にセキュリティ上の問題は発見されていませんが、発見されたときに慌てるよりも今からPHP8.0以上に変更しておきましょう(最新はPHP8.1です)。

PHP8以上はPHP7.4よりも処理速度が速い

PHP 8は処理速度が向上しており、ベンチマークテストでも高いスコアを出しています。

PHP 8のリリースノートによると、PHP 7.4に比べて平均で約23%パフォーマンスが向上しています。JITコンパイラの導入により、CPU密度の高いワークロードにおいては特に高速になります。

(参考:PHP公式サイトPHP 8.0.0 Release Announcement

PHP公式サイトによると、PHP 8.0.0はPHP 7.4.0よりも、各種テストで平均1.3〜2倍のパフォーマンスを発揮しているという結果が出ています。

りょうこ

PHPのパフォーマンスが向上するとサイトの表示速度が速まり、サイト速度が速まるとSEOにも効果があると言われています

reCAPTCHA機能について

今回設定したreCAPTCHA機能とは、どのような機能なのでしょうか。

少し難しい部分もあるかもしれませんが、インストールしたプラグインの機能を理解していると、今後エラーに遭遇したときの切り分けが容易になりますのでぜひ最後まで読んでくださいね。

reCAPTCHA機能とは

reCAPTCHAは自動化された攻撃やスパムからウェブサイトを保護するためにGoogleが提供する技術です。人間の操作かどうか確認することで、ウェブサイトを自動化された攻撃から保護します。

reCAPTCHAにはv2とv3があり、v2はユーザー(人)がテストをクリアする必要があるのに対し、v3はユーザーに見えない背後で動作します。

v2では、ユーザーが「私はロボットではありません」というチェックボックスを選択したり、画像認識や音声認識のテストを行ったりすることで、人間が操作していることを確認。v3では、ユーザーが操作しているかどうかをユーザーの行動パターンなどのさまざまな要因を分析することで決定するのです。

v3はよりシームレスで使いやすく、v2はより強力な保護機能を提供できます。

ブログサイトとreCAPTCHA機能

会員用機能などがない一般的なブログサイトには、以下の4種類のフォーム画面(ユーザが入力可能な部分)があります。

サイトの管理者が使う画面
  • 管理画面のログインフォーム
  • パスワード再発行画面
サイトの読者が使う画面
  • 記事のコメント
  • お問い合わせフォーム

ログイン後の管理用ダッシュボードにはたくさんのフォームがありますが、管理者のID/パスワードを知らないとアクセスできないため、ここでは除外します。

■サイトの管理者が使う画面

■サイトの読者が使う画面

4つの入力フォーム画面を守る方法の1つがreCAPTCHAです。

多くのサイトでinVisible reCaptchaプラグインが使われていた大きな理由は、上記4つのフォームの保護を無料で網羅していたこと。

現在一番の問題は、同じ機能をもつ適切なプラグインが見当たらないことにあります。

りょうこ

代替え案として2つのプラグインを使っていたのはそのためです

reCAPTCHAの守る範囲

この記事で紹介したプラグインを含め、よく使われるプラグイン’(無料版)のreCAPTCHA機能が守る範囲を表でまとめました。

Invisible reCaptchareCaptcha by bestWebSoftContact Form7WPForms Lite
ログイン画面
パスワード再発行画面
記事のコメント
お問い合わせフォーム

Invisible reCaptcha以外でサイト全体をreCAPTCHA機能で守るためには、複数プラグインの組み合わせが必要となることがわかります。

reCAPTCHA機能は必要なの?(中級者向け)

ここまでreCAPTCHA機能の使用方法の説明をしてきましたが、reCAPTCHA機能は必ず使用しなければならないのでしょうか。

実はreCAPTCHA機能はセキュリティ機能の1つに過ぎず、必ず使用しなければならないものではありません。次のような人は、省略することが可能です。

※セキュリティ機能は多重にかけることでより強固になりますので、使用しても問題ないです。

reCAPTCHA機能が不要な人
  • 他のサイトで使用していない強固なパスワードを設定している
    → ログイン画面のreCAPTCHAは不要
  • SiteGuard WP Pluginなどのプラグインで、ログイン、パスワード再発行、コメント欄にひらがな入力を必須としている
    →ログイン画面、パスワード再発行画面、コメント欄のreCAPTCHAは不要
  • コメント機能をOFFにしている
    →コメント欄のreCAPTCHAは不要
  • お問い合わせフォームを設置せず、メールアドレスの掲載で対応している
    →お問い合わせ機能のreCAPTCHAは不要

コメント機能を制限したりreCAPTCHA以外のセキュリティ対策を施すことで、reCAPTCHA機能を使用しないという選択もできるのです。

プラグインの数を減らしたくなったときは、reCAPTCHA機能でご自身のサイトのどの範囲を守っているか確認して取捨選択してみてください。

まとめ:PHP8以上ではInvisible reCaptchaは使えない。代替プラグインを使おう。

PHP8.0以上でInvisible reCaptchaを使うと発生する不具合の対処方法について解説しました。

使用しているサーバのPHPバージョンを8.0以上にあげると、Invisible reCaptchaプラグインはもう使えません。

WordPressの4つのフォームをreCAPCHA機能で無料で守るには、次の2つのプラグインを使って代替しましょう。

  • reCaptcha by BestWebSoft
  • Contact Form 7のインテグレーション機能
りょうこ

PHP7.4に戻せばエラーは出なくなるという解説もありますが、PHP7.4はセキュリティサポートが終了しているので使わないようにしましょうね

コメント

コメントする

CAPTCHA


このサイトは reCAPTCHA と Google によって保護されていますプライバシーポリシー利用規約 申し込み。

The reCAPTCHA verification period has expired. Please reload the page.

目次