先日、スパム対策としてGoogleの提供するreCAPTCHAを導入しようと各種の設定登録を行っていました。
reCAPTCHAを有効化すると、上画像のような保護マークがブログに付くことになります。
このreCAPTCHAを使えば、ブログコメントや問い合わせフォームへの入力がスパムか否かを自動で判別して、スパムの入力をシャットアウトしてくれるので、セキュリティ対策上非常に便利。
という話を聞いたので、早速僕もreCAPTCHAを導入してみたのですが、ここで重大な問題が発生。
reCAPTCHAを使うためにプラグインInvisible reCAPTCHAを導入した
ブログ上でreCAPTCHAを有効化するには、結構面倒な作業が必要です。
本記事はreCAPTCHAの導入方法について解説するものではないので、詳しい作業手順は省略しますが、ざっと作業手順の流れだけ紹介すると。
Google reCAPTCHAにブログドメインを登録
まず、Google reCAPTCHAのトップページに自身のGoogleアカウントでログインします。
参考 Google reCAPTCHA.google.com/recaptcha/ログインすると、ブログドメイン名の入力画面が出てくるので、そこに必要な情報を入力。
reCAPTCHAタイプは、「reCAPTCHA v3」を選択しました。
タイプの違い
- reCAPTCHA v2は、ランダム表示される画像文字の手入力を求められる
- reCAPTCHA v3は、ユーザーが特別な入力を行わずとも自動でスパム判定をしてくれる
ユーザービリティの観点からは「reCAPTCHA v3」の方がいいだろうと考えて選択したのですが、今にして思えばこれがワードプレスにログイン出来なくなった原因だったかもしれません。
さて、全ての入力が完了し、送信ボタンをクリックすると、以下のようにサイトキーとシークレットキーが生成されます。
これを後述するプラグインに登録することで、reCAPTCHAを利用することができるようになります。
『Advanced noCaptcha & invisible Captcha』をインストール
続いて、ワードプレスの管理画面から『Advanced noCaptcha & invisible Captcha』というプラグインをインストールします。
ちなみに、半年ほど前までは『Invisible reCaptcha for WordPress』というプラグインが使われていたようで、今のところはそちらのプラグインをインストールして使っても大丈夫なようです。
インストール完了したら、すぐに有効化ボタンを押します。
プラグインにサイトキーとシークレットキーを入力し各種設定登録
『Advanced noCaptcha & invisible Captcha』を有効化したら、設定画面で先ほど取得したサイトキーとシークレットキーを入力します。
「Enabled Forms」でreCAPTCHAを有効化するブログページやフォームを選択できます。
コメント欄や問い合わせフォームからのスパムを防ぐためには、「Comment Form」などの項目にチェックを入れればいいのですが、「セキュリティ対策を万全に!」と考えて「Login Form」にもチェックを入れておきました。
これにより、ワードプレスのログイン画面でもreCAPTCHAが有効化されることになるのですが、この選択もログイン出来なくなった理由の一つとなりました。
これらの登録手順を経てやっと、ブログページにreCAPTCHAの有効マークが表示されるようになります。
右下のプライバシー保護マークですね。
reCAPTCHAを有効化した途端にワードプレスへログイン出来なくなった
reCAPTCHAを有効化した次の日、いつものようにワードプレスログイン画面からユーザー名とパスワードを使って管理画面に入ろうとしたところ…。
正しいユーザー名とパスワードを入力しているのに、何回試行してもERROR表示が出てしまいます。
ただ、直前にワードプレス上で行ったことと言えばreCAPTCHAの導入くらいだし、ログイン画面の右下にはreCAPCHAのプライバシーマークが表示されていたので、原因はreCAPTCHAにあることはすぐに予想できました。
で、色々調べてみて分かったことは、
ログイン不可の原因
- ワードプレスログイン画面でreCAPTCHAを有効化している。
- ログイン画面はパスワード非表示設定となっている。
- パスワード入力が非表示状態なのでreCAPTCHAが人的入力でないと判断してしまう。
- 解除しようにも、「reCAPTCHA v3」で自動判定しているため人的入力で解除できない。
ざっとこんな原因でログインができなくなってしまったようです。
ワードプレスは毎日使うし、これじゃあ仕事が滞ってしまうので、どうしたものかと。
エックスサーバーにログインしてプラグインを削除する手順
僕はレンタルサーバーとしてエックスサーバーを使っています。
エックスサーバーでは、インフォパネルにログインすることで、サーバーに保管している全てのファイルを管理・編集することができるので、こちらに保管されているプラグイン『Advanced noCaptcha & invisible Captcha』のファイルを削除しました。
具体的には、まずはインフォパネルにログインして、「ご契約一覧」のサーバーから「ファイル管理」を選択します。
参考 インフォパネルエックスサーバーファイル管理の一覧から、プラグインを導入したブログのドメイン名ファイルを選択します。
次に、「public_html」ファイルを選択。
続けて、「wp-content」ファイルを選択。
最後に、「plugins」ファイルを選択します。
すると、インストール済みのプラグインが一覧表示されますので、その中から今回問題となっている『Advanced noCaptcha & invisible Captcha』を探して、チェックボックスにチェックマークを入れます。
あとは右側の「ファイルの削除」ボタンをクリックすれば、ワードプレス管理画面にログインすることなく目的のプラグインを削除することができました。
再びワードプレスログインページに戻ってみると。
このように、reCAPTCHAのプライバシーマークが消えており、ユーザー名とパスワードを入力することで通常どおりログインすることができました。
これにて一件落着ですね。
終わりに
今回、スパム対策のためにreCAPTCHAを導入しようと、『Advanced noCaptcha & invisible Captcha』プラグインを有効化した結果、ワードプレスにログインできなくなるという問題が発生してしまいました。
今回このような問題が発生したのは、プラグインの項目設定だったり、ワードプレスへのログイン環境だったりと、「ツールの機能性とは関係ない外的要因」が原因で、reCAPTCHAを導入すること自体は決して悪いことではありません。
自身の設定ミスなどによってワードプレスにログインできなくなるケースは、ブログを運営し続けているとたまに起こります。
今回、ワードプレスにログイン出来なくて焦ったと言っても、僕自身何度かこういう問題には遭遇していますし、そのたびにちゃんと問題解決できているので、あまり深刻に考えすぎないことですね。
ログイン出来なくなるケース
- プラグインの設定ミス
- function.phpの誤記入
- テーマテンプレートの問題
今までログイン出来ていたものが急に出来なくなり、しかもログイン出来ない以上は管理画面に入って問題の修正を行うことも出来ないとなれば、ブログ初心者のうちは困惑してしまいがちですよね。
そんなときは、ひとまず落ち着いて原因を考えるといいです。
原因を特定することが出来たら、サーバーに保管されているFTPファイルから原因を取り除くなり修正するなりしていきましょう。