2006/12/11
■ [sns] spam filter on sns
このブログにも最近スパムコメントやスパムトラックバックが届くようになりました.
ここのブログシステムは sns なのですがスパムフィルターを探してみるとさっそくありました.
どうやら plugin/filter.pm にフィルタルールを書けば良いだけらしい.そこで下記のように記述したら確かにバッチリ効いてました.
# filter.pl
sub _comment_filter {
my $name = shift;
my $comment = shift;
# TODO ここに任意の判定ロジックを記述してください
if (length($comment) > 256) { #長いのはイヤ!
return 0;
}
if ($comment =~ /\n/) { # 複数行もカンベンして
return 0;
}
if ($comment =~ /<[aA] /) { #リンクもダメ
return 0;
}
return 1;
}
sub _trackback_filter {
my $title = shift;
my $excerpt = shift;
my $blog_name = shift;
my $url = shift;
# TODO ここに任意の判定ロジックを記述してください
if ($excerpt =~ /<[aA] / || $excerpt =~ /http:/) {
return 0;
} # 要約の中にリンクが含まれる場合ははじく
return 1;
}
1;