WordPressでrecaptcha画像が表示されない時の治し方

WordPressサイトのログイン画面にセキュリティを高めるために、recaptcha認証としてSiteGuardプラグインの画像認証を入れています。

ある日、ログインしようとしたら「ひらがな認証画像」が表示されないことに気づきました。つまり、画像が読み取れないのでログインできないというわけです。

結論的には、画像ファイル自体を生成した瞬間にファイル名を変える改造を入れていたからで、原因は自分でした(笑)

それらの対応も含めて何をしたかをメモしておきます。

WordPressのログイン画面のrecaptcha認証が表示されない

WordPressプラグインのSiteGuardの画像認証で、ログインページにおけるひらがな画像認証機能をONにしていました。ある日、Wordpressログイン画面を見ると、画像部分が「非表示」となり、画像が見えなくなっていました。

1日経ったか、その日に直したかは忘れたのですが、Google検索をして他サイトを調べていたら、

SiteGardプラグインの画像認証を入れたらログインできなくなった話

にたどり着きました。よーく見ると、「ファイル名の自動変更機能」とあり、そういえば少し前に同様の対応をしたわーと思いだしたというところです。

修正としてはこの自動変更機能をOFFというかコードを抜けばいいのですが、実際には画像ファイル名を一意にするためにやった対応なので、抜く対応はせず、新規に別プラグインを入れて、SiteGuardの画像認証はOFFとして、インビジブルのrecaptchaを入れた事なきを得ました。

それらでやったことを書いておきます。

なぜ画像表示されなくなったかの検証メモ

結論から書いているので焦ってないように見えますが、実はかなり焦りました。画像認証用の画像が見えないってどうすればいいのか?実際はFTPで特定のフォルダに一時ファイルで生成されることまでは確認できていたので、FTPで画像ファイルをダウンロードして画像ファイルを開いて打ち込むという謎いことを何回かやっていました。そういう意味ではログインできないのでなく、完全に画像表示部分がおかしくなったことがわかります。

シゴクリブログは大丈夫だったので、Wordpress系のバグとかではないこともわかりました。Wordpressも最新バージョンです。SiteGuardのせいにしようとしたのですが(笑)同じ設定だったのでこれも違うと。疑ってすいません。

他のプラグインなど構成が異なるのでそのあたりか、例えばバージョンアップしたことにより弊害がと思いましたがこれも違う。

改めて、FTPでテンポラリフォルダを見ていると、ハッシュ値っぽいランダムな数字ファイルとなっています。これってどっかで見たことあるなあと思って、シゴクリと対象サイトを比較してみることにしました。すると、数字で構成されるファイル名がハッシュ値になっていて明らかに変更されている。検索していて、こちらのSiteGuard WP Pluginの留意点をみたことも大きかったですが、どうも改造処理が入っているなあと感じました。

そして冒頭にも書いた、SiteGardプラグインの画像認証を入れたらログインできなくなった話にあった記事にたどり着いて気づきました。自分でファイル名改造コード入れていたわと。これが原因でした。

つまり、処理はこうなっていました。

  1. 画像認証用の画像を生成するプラグイン側の機能が発動
  2. その画像が生成するタイミングで「ハッシュ値」ファイル名をランダムに生成
  3. 数字のみでなく、別プログラムで変更しているので当然ファイル名が異なり読み込み表示が出来ない
  4. 結果的に非表示かつファイル名が異なることになり、画像がログイン画面で見えなくなる

ということでした。

分かればなんてことはないんですが、気づかないとかなり悲しいですね。

対応方法

ファイル名ランダムにする処理はfunctions.phpに入れていて、画像ファイルでなく特定のメディアファイル等でif文などでくくれば良さそうですが、実際にそれが面倒なのと、SiteGuardの画像認証機能自体が簡易なものであったので、recaptcha自体を別に入れることができないのかと考えました。

そうしたらこちらの、Googleの第三世代 スパム防止認証システムInvisible reCAPTCHAの設置方法を参考にして、Invisible reCaptcha for WordPressをインストールして、新規でrecaptchaを取り直して設置することで対応しました。

インビジブルなrecaptchaはもはやロボットでないボタンを押すとかでなく、内部的にどうかを判定しているようです。細かいことは不明ですがrecaptchaが進化するのってなんとも面白いですね。

これにより、ログイン画面での入力の煩わしさも解消されてオッケーという感じです。

今回の気付き

自分がWordpressで改造をしたことがアダとなって、要は自分でバグを生み出したわけですが、結局こういった改造も管理しておかないと長期的なバグを生み出す原因になりそうだなと感じました。そういう意味で、個人でガチャガチャやってると怖いかもなあというところです。

一方でそこまで管理するものでもないということで、たまたまつながったといえばそうですがまあなかなかの自分罠だったと感じました。

おわりに

画像ファイル名など一意にする改造を入れている人はどれくらいいるかわかりませんが、それによってrecaptcha画像認証側に影響を与えるということがぱっと分かる人ははまらない罠です。一方であまり考えずにやるとこういう罠にはまるということでもし同様な現象が起きたら改造コードが原因ということになりそうですね。

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