« WMVのライセンス | メイン | メニューを作った »

2005年09月22日

このHPについて雑記:: トラックバックスパム対策

    

ここ数日トラックバックスパムの件数が少なかったので、着たら削除してIPを禁止にってしていたけど、今日見たら19件ぐらい溜まっていたので対策をとることにした。
対策用のソースコードは既に書いていたので、それを該当する部分に入れてアップロード。
他の場所からトラックバックのテストをして見た所、問題なくトラックバック出来た。
これで、しばらくトラックバックスパムがなくなるといいが……

変更箇所は、lib/MT/App/Trackback.pmの234行目付近、return $app->_response(Error=> $app->translate("Need a Source URL (url).")) unless $url;とある直ぐ下に次のようなコードを追加した。

{
  $url =~ /http\:\/\/([^\/]+)/;
  my $response_domain = $1;
  my %spammer_url = (
    "www.bloomberg.com" => 1,
    "www.ematrix.ru" => 1,
    "www.gelmut.ru" => 1,
    "www.dostavka.ru" => 1,
    "www.syllable.org" => 1,
    "www.megashop.ru" => 1,
    "wdb1.sco.com" => 1,
    );
  if( defined( $spammer_url{$response_domain} ) ) {
    return $app->_response(Error=> $app->translate("Spam URL."));
  }
}

上の処理は、トラックバックピングのurl部分にハッシュに含まれるURLがある場合はスパムとみなしてエラーにしている。
スパムが他のURLを指定するようになった場合は、ハッシュにURLを追加する。
ハッシュにしたのは、URLの数が増える可能性があるから。
ファイルを分離するか、DBにリストを保存した方がいいんだろうけど、面倒なので直に入れた。
これで最近悩まされているトラックバックはなくなるはず。



投稿者 Takenori : 2005年09月22日 15:10




comments powered by Disqus
Total : Today : Yesterday : なかのひと