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)
コメント
コメントする