2007-02-23(金) [長年日記]
■ tDiary: もりもりとspam対策
2.2のリリースに向けて、今月はspam対策関連のcommitをもりもり実行。ひととおりのフィルタは実装できたかな。
fragment入りのリンク元をspam認定
リンク元(referer)に、(通常のブラウザからは送られないはずの)「#」が含まれている場合はspamとみなす。標準のspamフィルタで強制的に適用。最近のreferer spamはたいていこれで防げている。なんでspam業者がわざわざ「#」を入れてくるのかわからないけど、ありがたいことだ(感謝してどうする)。
hide-mail-fieldプラグイン
夏に実装した、E-mail欄を隠すプラグイン。JavaScriptではなく、CSSを使うように実装しなおした。いっぽう、モバイルモードではtype=hiddenにして誤入力を防ぐように配慮。毎日50〜100通くらい来るツッコミspamは、ほとんどがこれで防げている。
spamlinkcheckフィルタ
1年半前に実装し、contribに入れてあった、リンクのないTrackBackをはじくプラグイン。標準のspamフィルタの設定画面でON/OFFできるようにして、coreに移動。(現時点では)たいていのTrackBack spamはこれで弾ける。
spamakismetフィルタ
先月実装した、Akismetのサービスを使うフィルタ。上のhide-mail-fieldプラグインをすり抜けてきた数通のツッコミspamはすべてこれで捕獲できており、実績は少ないながらも今のところ誤認識はない。
同様に先月入れてみた長いドメイン名spamフィルタは、ビミョーな感じなので今回は見送り。
このほかに、tdiary.confの初心者向けサンプル「tdiary.conf.beginner」には、spamフィルタのオススメ設定を書いてあるので、これを使って最初のセットアップをすれば、それだけでspamに強い日記が構築できる……はず。こっちはもうちょっとチューニングしたいところだが。
hide-mail-fieldプラグインに対応するフィルタが必要ではないでしょうか?
勘違いだったらすみません。
ヘルプの方に、メールアドレスでフィルタをかけるように説明してあります:
http://docs.tdiary.org/ja/?hide-mail-field.rb