MT3.3で英数記号のトラックバックスパムを拒否する
このブログは英数記号のみのトラックバックは拒否しています。
トラックバックスパムを防止する方法としては、プラグインを使ったりmt-config.cgiの設定値を変更したりする方法があると思いますが、それらだけではこれまでうまく対応できませんでした。
そこで、スパムの大半は概要文が英語であることに注目して、概要文が英数記号のみだったらエラーを返すように lib/MT/App/Trackback.pm を直接修正してみました。エラーを返すのでトラックバックはデータベースに記録されません。
修正箇所はこんな感じ。(行数がずれている可能性もあります。)
$ diff Trackback.pm.20080210 Trackback.pm 219a220,222 > return $app->_response(Error=> $app->translate("Need a Source URL (url).")) > if $excerpt =~ m!^[a-zA-Z0-9\s\.,\!]+$!; >
こういう場合のエラーメッセージは適当であるべきなので、適当に前後のコードをコピっています。記号の種類はめんどくさいので最小限に。
もちろん正当なトラックバックの場合でも弾いてしまうことがあると思いますが、あの数分おきにやってくる嵐のようなトラックバックを防止するには、こうするより他ありませんでした。
この対処ですっかり受信するトラックバックが激減したので、うまくいっているのだと思います。
コメントを残す