年末に、サイボウズ・ラボの竹迫さんとメールでお話しさせてもらって浮かんだアイデアです。
メールでのスパム対策として、botの判定にパケットの特徴を見て、Windowsクライアントかそれ以外かを見分ける、p0fという手法があります。
Webの場合、接続してきたブラウザは自分のブラウザ名を言ってくるんですが、これは自己申告なので当然ながら騙ることができるため信用できません。
しかし、竹迫さんのブラウザの癖からブラウザの判定する手法
TAKESAKO @ Yet another Cybozu Labs: diggは大変なアクセスを残していきました
を使うことで、自己申告に頼らずにそのブラウザが何かを判定させることができます。
例えばIE6ならこの画像、FireFoxならこの画像、というようにブラウザがそのブラウザ種ごとにアクセスを残してくれることになります。
そこで、apacheの特定ファイルへのアクセスを監視するPbSデーモンみたいなやつで、このIPからの接続はIE6だ、とか返すIP→ブラウザ種を返すサーバを用意します。
botからの接続のIPは、当然正しいブラウザ種は返さない(ほとんどの場合は判定用画像へのアクセスが全くない)でしょうから、そういう怪しいやつは拒否してしまうか、captchaでのチェック掛けるとかします。
画像表示をオフにしてる場合にうまく動かないという問題がありますが、これだとほぼすべてbotからのコメントは拒否できそうな気がするんですがどんなもんでしょう。