SiteGuard WP Pluginとキャッシュプラグインの相性問題

この記事は約3分で読めます。

「WP Super Cache」等のキャッシュプラグインを使うと、「SiteGuard WP Plugin」の機能であるコメント欄の画像認証が「CAPTCHA」と表示され、コメントの書き込みができないというトラブルがある。
こちらのサイトも同様のトラブルに見舞われた。

原因は生成されたキャッシュデータより、「SiteGuard WP Plugin」の画像認証許可の保持期間が短いからである。ソースを確認したが60分だった。
多くのサイトがキャッシュプラグインを諦めるか、「SiteGuard WP Plugin」を諦めるかの選択をしているようだ。

検索して意外だったのは、プラグインそのもののソースを弄ってしまう案の紹介が見つからなかった。そこで自分で紹介してみる

Ver.1.7.7において「siteguard-really-simple-captcha.php」の326行目
public function cleanup( $minutes = 60 ) {
を例えば
public function cleanup( $minutes = 1500 ) {
に変更してしまえばよい。1500は25時間を意味する。

※2025/08/31追記。1.7.9でも問題は無いです。

セキュリティー的にどうなのか?というところだが、気にするほどではないと判断している。
このサイトは、以下の3段階でコメントスパム対策をしている。

  • さくらインターネットの「国外IPアドレスをフィルタ」にある「コメント・フォームの制限」をON。ライトプランでも適用されるようだ。これにより海外からのコメントスパムを防止。
  • 「SiteGuard WP Plugin」による画像認証。認証文字を「ひらがな」にすることにより、国内からでも日本語変換ができない環境からのコメントを防止。
  • 標準プラグインの「Akismet Anti-Spam」によるSPAM判定

セキュリティーというより、可能な限りコメントスパムを防止したい意図で設定しているものだ。元から誰でも投稿できてしまうので、セキュリティーとしての意味はあまりない。
ただし管理者ログイン画面の画像認証と連携しているので、こちらのログインアタックに対するセキュリティは落ちてしまう。ただ同プラグイン機能の「ログインロック」で防止できるはずだ。
「SiteGuard WP Plugin」の利用を止めるよりは、遥かにセキュリティー上は良い。

「WP Super Cache」上のキャッシュ保持は86,400秒に設定している。つまり24時間だ。それよりも長い25時間は「CAPTCHA」のデータを保持しているので、現状では運用に全く問題は無い。

ただここで大問題がある。この方法はプラグインの更新があるたびに、当該ソースを自分で変更しなくてはならない。簡単ではあるが面倒なのである。
もっと良い案があったら教えていただきたい。

コメント