一時期は落ち着いていたのですが、最近またスパムコメントがよく来るようになりました。
Movable Type 3.2ではフィードバック(コメントとトラックバックのこと)受信時にそのスパム度を判定する仕組みが備わっていて、たとえば『送信元のIPアドレス/ドメインがブラックリストに含まれている場合』とか『受け付けた内容に、指定した数を超えるリンクが含まれている場合』とか『受け付けた内容に、指定したキーワードが含まれている場合』とかによってフィードバック毎にスパム度を判定して、ある一定の数値に達したものを迷惑コメント・トラックバックとしてジャンクフォルダに直行させることができます。この『何々だった場合』という部分をプラグインによって拡張できるのがJunk Filter APIです。大筋は合ってますよね?
これはなかなかおもしろそうです。とりあえずボクが使わせてもらっているのが、Ogawa::Memorandaの(o)さん作によるDuplicated TBPing Lookup Pluginと、blog.bulknews.netのmiyagawaさん作によるMT BanASCIIです。前者はその名の通り『同一ソースURLから同一エントリーへの重複トラックバック』をスパムとみなすもの、後者は『英数字または latin-1 だけで構成された』コメント・トラックバックをスパムとみなすものです。これら両プラグインと3.2標準のSPAMLOOKUPとでほぼ完璧にスパムフィードバックを捕捉することが出来ています。
このJunk Filter APIを利用したプラグインでは他に、『TrackBack の送信元に、TrackBack先へのリンクが含まれて』いないトラックバックをスパムと見なすTBPingLinkLookupがありますが、そこまでトラックバック元を限定しなくてもいいやとボクは思うので利用していません。何か問題が出てくれば考え直すかも知れませんが……。
そんなわけで、他にどんな判定基準が考えられるかなあと思いを巡らせたりしています。
また、前出のmiyagawaさんによるBulkfeeds: SPAM ブラックリストの公開、Submission API と MT プラグインもスパム対策にとって興味深い内容となっています。
上記で『スパムとみなす』と書いたのは、それらのフィードバックが一般的にスパムに該当するからであって、もちろん設定如何によってそれらを『スパムとみなさない』ようにすることも出来ます。がしかし、わざわざブラックリストに含まれているコメントやトラックバックを好んで掲載しようとする必然性もないですよね。