Logo wizaman's blog (legacy)

スパムコメント対策の話

June 18, 2014
6 min read
Table of Contents

WordPressに移行してから1年以上経ちますが、あまり更新できてないし、そもそも身内向け文章か個人メモが多めなので、寄せられたコメントは少な・・・いや、皆無です。身内だったら、Twitterで反応もらうし、まあ。

ここはただのテキスト置き場みたいなものなので、コメントもらうことに重要性はありませんが、久々にWordPressを色々といじってみて今更気付いたことが。

スパムコメントそこそこ来てる!

WordPressでスパムコメント対策するには、とりあえずAkismet入れて自動判定しとけって話になってると思うし、私もそうしてます。あとは、SI CAPTCHA Anti-Spamで投稿時に画像に書かれてる文字列を入力させるようにしてました。

この状態で過去200件以上のスパムコメントが削除されていたことがAkismetの管理画面で判明しました。流石にこれが全部誤判定だとは思えないし、ほぼ間違いなくスパムなのでしょう。それって、つまり、SI CAPTCHA Anti-Spamは突破されてるのであんまり意味ないな・・・。

Akismetの問題

Akismetによって、スパム判定されたコメントはスパムフォルダーに置かれ、コメント通知のメール送信は行われません。スパムフォルダーに一時退避されたコメントは15日以上経過すると削除されます。

私が気付いた時点でスパムフォルダーの中身はすっからかんでした。もしかしたら、誤判定もあったのかもしれない。そしたら、申し訳なさすぎます。これが身内だったら指摘されてすぐ気付いたのですが・・・。

こういうところでAkismetは融通が利かなくて、例えば、15日ごとにこいつら消すけどどうよ?とかいうレポートをメールで教えてくれれば賢いのですが、この気を抜いたらあっという間に過ぎ去ってしまう15日間ずっと管理者が確認しなければいけないということになります。15日という期間も変えられません。プラグインの15日判定してる部分を書き換えれば、期間は延ばせるっぽいですが、プラグインを更新する度に改造しなおさなきゃいけないのでめんどくせーです。子テーマみたいな対応がプラグインにあればいいんですが。

今更この事実を知ったわけですが、不便すぎませんかね。

とはいえ、Akismetの代替として適したものもなさそうなので、今後はなるべく意識して確認しようとは思います。

現在のスパム対策

ちょっとだけ対策を変えました。Akismetは継続して利用します。誤判定確認は頑張りますとしか言いようがないです。

SI CAPTCHA Anti-Spamが普通に突破されてるのなら、邪魔でしかないので無効にしました。

代わりにJetpackのJetpackコメント機能を有効にしました。Twitterなどのアカウントで認証してコメントを投稿することでできるようになります。同様のプラグインとしては、DISQUSが有名です。

ちなみに、JetpackコメントとSI CAPTCHA Anti-Spamは共存できません。SI CAPTCHA Anti-Spamのコード入力フォームが出なくなり、コメント投稿時にコードが未入力としてエラーになります。コメントを投稿できなくなるということです。

あとは、今までコメントは承認するまで表示されないようにしていましたが、即時反映されるように変更しました。荒らし対策として、承認という手順を挟みたかったのですが、即時反映させることで、コメント投稿したのに反映されてない!スパム判定された!と、もしかしたら投稿者が気付くかもしれないなぁという期待を込めて(→投稿者への通知方法がありました)。その上で、その人が何らかの手段で教えてくれるかはわかりませんが・・・。

この世にスパムが存在しなければ、こんなややこしいことにはならないのに。