[wordpress] Akismetを暇にする現状で最強のスパム対策

WordPressのオーナーにとってコメントスパム/スパムトラックバックは悩みの種だと思います。

Akismetはコメントスパム/スパムトラバを検知してくれる優秀なプラグインなのですが、コメント/トラバを受けて発信元(IPなど)、内容等を精査する仕組みのため、どうしてもデータベースへのアクセスが発生してしまいます。ひとつひとつの負荷は微々たるものでも塵も積もれば何とやら。スパムによる負荷なんてないに越したことはありません。

2つのプラグインを導入する

肝となるのはakaさんに教えてもらった2つのプラグイン。

1つ目はWP-SpamFree。現在WordPressを対象にスパムを撒き散らすスパマーの多くがボットを利用してスパムを自動化しており、ボットの多くはJavaScriptとCookiesの両方には対応していないそうです。WP-SpamFreeはJavaScriptとCookiesが無効になっているとコメント不能にすることでボットからのスパムコメントを防御します。

ところが現在日本のケータイの多くはJavaScriptやCookiesを解釈することができないため、このままではケータイからコメントできなくなってしまいます(ここではiモードブラウザやOpenWaveブラウザのことを指しています。フルブラウザはJSもCookiesも解釈できることが多いようです)。対処策としては、ケータイからのアクセスの場合WP-SpamFreeを動作しないようにしてやればOKです。

僕はケータイからのアクセスをKtai Styleで表示させるようにしているので、WP-SpamFreeの28行目(先頭)にif(is_ktai()) return;と挿入してやりましたhiromasaさん、Thanx!)(Ktai Style Ver.1.10よりWP-SpamFreeのコード修正不要になりました。yurikoさん、Thanx!)

2つ目のプラグインはSimple Trackback Validation Plugin。ほかのサイトから飛んできたトラックバックをどのような基準で審査し、基準からすると不正なものをどう処理するか設定できるようになります。

simple trackback validation plugin setting

上のスクリーンショットはデフォルトの状態で、僕は不正なトラバ処理を「Mark as spam」にし(不正なものはakismetにたまるようになります)、「Add prefix [Blocked by STBV]」のチェックを外しました(このチェックが入っているといちいと投稿者名に[Blocked(ry」が入ってしまうので、問題ないトラバだった場合に消すのが面倒だからです)。きちんとそのページへの言及リンクが入っていなければ認めない場合は「Strictness」で、WPへのURLが入っていればいいかなという場合は「Any link beginning with the following URLs is allowed: 」を選ぶとよいと思います。ぼくは後者で様子見中。

驚くほどの効果

この対策をしてから約1ヶ月。この間にAkismetがつかまえたスパム、Akismetをすり抜けたスパムともにゼロとなりました。驚くべき効果です(…と書いていたら正常動作でmasayanさんからのトラバをSimple Trackback Validationが弾いてたみたいです。masayanさん、ごめんなさい…。ページへのリンクがないと弾いちゃうの(´・ω・`))

Akismetが空の画面というのもなかなか清々しいですね。ぜひお試しあれ。

暇そうなakismet

SBMスパムとタグの名前のつけ方

こんなブックマークするやつがShit!Fuck!

del.icio.usのwordpressタグのRSSをGoogle Readerに食べさせて、wordpress関連の話題をチェックしているのですが、ちょっと前からこのRSSにノイズが混じるようになりました。

あんなサイトやこんなサイトが混入してしまっているwordpressタグのRSS
↑あんなサイトやこんなサイトが混入してしまっているwordpressタグのRSSをGoogle Readerで受信した図

おそらくdel.icio.usからのアクセスをかせぐためにアダルトサイト等が自サイトに人気のあるタグ(ここではWordPress)をつけて自己ブックマークしたのでしょう。SBMスパム(ソーシャルブックマークスパム)ってことでしょうか。

こういう明らかにSBMを悪用した例は対策が容易だし、通報ボタンとかエントリをブックマークしたユーザとは別のユーザが当該エントリに対して信頼性や有用度の数値をつけられるようにすれば(パラメータをつかってモデレーション)対処できそうな。私がよく機能を知らないだけかもしれないけど。

こたえてちょーだい

タグといえば、首をかしげることもあって。はてなブックマークのホッテントリは楽しみに見てるんだけど、そこにあがるエントリについてるタグが変。タグがというよりタグのつけ方が変。

たとえば、わたしが知らないスゴ本は、きっとあなたが読んでいるさんの悪魔の詭弁術のSBMエントリ。どこを読んでもドラクエとは関係ないのに、ドラクエでタグ付けされています。グーグル、Firefoxの開発責任者を採用–「独自のブラウザ開発」の噂は本当かというCNETの記事も…なぜかドラクエ

ここまでひどい例じゃなくても、記事の中のほんの一文にドラクエの呪文が出てくるからとドラクエとタグ付けされていることもあったりします。

そもそも、タグ付けというのは分類のためのものであって、後から容易に取り出せるようにとつけられているものだとおもいます。だからエントリに述べられていることの中心を取って、みんなつけているのだと思うのですが、そうでもないのかな?naoyaのはてなダイアリー – さくらインターネット移行記#1の記事にさくらインターネットとタグ付けはしても、EverQuestとはタグ付けしないでしょ、というスタンスなんだけど。

こういうタグ付けはけしからん、というより、どういう風に考えた末に、このようなタグ付けをしているのか教えてちょーだい、といったところ。私が思いつきもしないメリットがあるのかしら?