2004年10月14日

コメントスパム対策その2

しばらくログを取ってみたら、スパムの多くがRefererを送って来ていないようなので、jm@foo: コメントスパム対策に加えて、以下のようにしてみた。

lib/MT/App/Comments.pm 161-162行目の

} my $comment = MT::Comment->new;
} require MT::ConfigMgr; my $cfg = MT::ConfigMgr->instance; my $archive_url = $blog->archive_url; my $comment_cgi = $cfg->CGIPath . 'mt-comments.cgi'; my $refer = $ENV{'HTTP_REFERER'} || 'No referer'; unless ($refer =~ /^($archive_url|$comment_cgi)/) { $app->log("Invalid referer ($refer), $user_ip"); return $app->handle_error('リファラ(<a target="_blank" href="http://service1.symantec.com/SUPPORT/INTER/nisjapanesekb.nsf/jp_docid/20031024163125947?Open&src=&docid=20021020160209947&nsf=support%5CINTER%5Cnisjapanesekb.nsf&view=jp_docid&dtype=&prod=&ver=&osv=&osv_lvl=">参考</a>)が無効です'); } my $comment = MT::Comment->new;
に変更。こちらはベイジアンフィルタの場合と違い、コメントを保存する前に弾いている。 はじめ、
return $app->handle_error($app->translate('Invalid referer'));
として、ja.pmを使って日本語メッセージを表示しようと思ったのだが、なぜか日本語に変換されないので、コード中に直書き。そういえば'Name and email address are required. 'も日本語化されていない。なぜだろう? Posted by jiro at 2004年10月14日 01:44 | トラックバック (0)
コメント
コメントする









名前、アドレスを登録しますか?