迷惑トラックバックが増えてきたので,このサイトへのリンクがないトラックバックは受け付けないようにした。Movable Type 2.661 なのでハックで対応する。
迷惑トラックバックが止まらない。増える一方である。海外からのものが多いので,迷惑コメントの場合(nlog(n): 日本語限定コメントスパム対策)と同様の対策をしていた。
ところが,最近は日本語のブログからも来るようになってしまった。「儲ける」とか「情報商材」とかそんなのばかり。こちらの記事には全く関係がない。迷惑トラックバックをしてくるサイトでは,恐らく記事を読んでいない。nlog(n): 私がギャンブルで儲けようと思わない理由 にギャンブルで儲ける方法のトラックバックを送って来るのだからひどいものだ。つまり,Trackback Auto Discovery を使って自動的に送って来ているのだ。したがって,対策として一番簡単なのは Trackback Auto Discovery を削除してしまうことなのだが(nlog(n): 迷惑トラックバックを減らす方法),ブログとして正しくないそうなのでやめた。
とはいえ,毎日の作業が迷惑トラックバックの削除というのは実に虚しいので,何らかの対策をしたい。そこで,こちらの記事へのリンクがない場合は,トラックバックを受け付けないことにした。リンクのないトラックバックが全て悪いわけではないが(nlog(n): リンクなしトラックバックと時系列問題),量的には圧倒的に少ないので,無視させてもらうことにした。
最新の Movable Type 3.33-ja であれば,プラグインを入れるだけでOK。プラグインは MT 3.121 以降に対応していて,MT 3.2 以降ならさらに便利なプラグインもあるとのこと(naoyaのはてなダイアリー - Movable Type で言及リンクのない TrackBack ping を弾くプラグイン)。
しかし,このサイトは MT 2.661 なので,プラグインは使えない。その上,情報はとても少ない。できる方々は MT 3 や WordPress に移行してしまったからだ。寂しくなったもんだよ MT 2.x 界隈。ヒョォ〜って風が吹くよ。仕方ないので,泣きながらハックすることにした。これぞ四苦ハックなんちてププ。naoyaのはてなダイアリー - Movable Type で言及リンクのない TrackBack ping を弾くプラグイン をベースにしている。
Perl モジュールとしては,LWP::UserAgent と HTTP::Request が必要。 lib/MT/App/Trackback.pm を編集し,200行目付近に強調部分を挿入する。
動作は次の通り。トラックバックが来ると,トラックバックしてきたサイトに HTTP でアクセスする。エージェントは「MT::App::Trackback/0.01」という名前になる。アクセスできなければ相手にエラーを返す。アクセスできたら中身を見て,こちらへのリンクがなければ,これもエラーを返す。リンクがあればそのまま通す。エラーメッセージは translate() で言語パックを通しているが,言語パックは用意していないため,そのまま英語で出力される。
返したエラーメッセージは,相手が Movable Type であれば管理画面のログに記録される。例えば次のようなものになる。
参考にしたオリジナルのプラグインでは,エラーがあった場合,自分のブログのログにエラーを残すようになっているが,迷惑トラックバックでログが増えていくのもまた迷惑な話。なのでエラーは相手に返すだけでログには残さないようにしている。
各記事には,トラックバックの際の注意点として「トラックバックする記事には,この記事へのリンクを含めてください」を追加した。その代わり,日本語限定トラックバック対策は解除とした。
Posted by n at 2007-01-17 23:19 | Edit | Comments (0) | Trackback(0)
Master Archive Index
Total Entry Count: 1957