November 21, 2004

禁止IPに指定したことを知られないように

どうやら先日のコメントスパム対策はある程度功を奏しているようですが、スパムを送ってくる側が対応するのも時間の問題だと思います。ということで、今回は最終手段である禁止IPリストへの登録について考えてみました。

確かに禁止IPリストに登録するとそのIPからのコメントは排除できますが、デフォルトの動作では禁止されたIPからのコメントは送られてきた側にエラーとして通知されます。『You are not allowed to post comments.』と。このままではスパマーに、このIPはもう禁止IPに登録されてしまっているよ、すなわち違うIPからならスパムOK、ということを教えてあげているようなものだと思います。ということで、禁止IPに登録していてもエラーを返さないようにComment.pmを改造しました。

/path/to/MT/lib/MT/App/Comments.pm(MT2.661だと88行目付近)

if ($user_ip =~ /$banned_ip/) {
    return $app->handle_error($app->translate(
    "You are not allowed to post comments."));
}

if ($user_ip =~ /$banned_ip/) {
    return $app->redirect($entry->permalink);
}
に変更。

これで禁止IPに登録されたことを相手に知られずに済みます。それにしてもスパマーはいったいどれくらいIPを確保しているのでしょうか、うちの禁止IPリストは100を越えました…。そろそろベイジアンフィルタを考えてみようかと。

23:50 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | この記事をdel.icio.usでブックマーク | トラックバック
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/342
コメント
コメントする









名前、アドレスを登録しますか?
(次回以降コメント入力が楽になります)
  • 匿名でのコメントは受け付けておりません。
  • 名前(ハンドル名可)とメールアドレスは必ず入力してください。
  • メールアドレスを表示されたくないときはURLも必ず記入してください。
  • コメント欄でHTMLタグは使用できません。
  • コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
  • コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。