カテゴリー
technology

トラックバックスパム対策(MT向け)

コメントスパムは 1バイトコメントを ban する対策を講じたところで安心していたのですが、この数日で突然トラックバックスパムの嵐にやられました。
なんだか腹たってきたのでコメントスパムと同様 1バイト文字のみで構成されるトラックバックは ban。(差別っぽいけど)ついでにブラックリストに含まれる場合も ban ということで修正してみた。


MovableType バージョン 2.661 ベースですが <MTインストールディレクトリ>/lib/MT/App/Trackback.pm の ping メソッド内 171行目辺りに以下のコード追加。

# BEGIN トラックバックスパム対策
use FileHandle;
my %banned_url;
my $blacklist = "/path/to/mt/blacklist";
my $fh = FileHandle->new($blacklist) or die "$blacklist: $!";
while (<$fh>) {
chomp;
$banned_url{$_} = 1;
}
if ($url ne '' and $banned_url{$url}) {
return $app->_response(Error => 'Banned.');
}
# END トラックバックスパム対策
# BEGIN トラックバックスパム対策2
my $text = $title . $excerpt;
if ($text =~ /^[\x00-\x7f]+$/) {
return $app->_response(Error => 'Banned.');
}
# END トラックバックスパム対策2

いずれの対策もコメントスパム対策時に頂いたものを微修正しました。
MT コメントSPAM対策: blog.bulknews.net
Ceekz Logs: コメントスパムがうざいので