Movable Type で言及リンクのない TrackBack ping を弾くプラグイン

TrackBack の送信元に、TrackBack先へのリンクが含まれている方が良いかどうかという議論が巷では盛り上がっているようです。はてなダイアリーでは、TrackBack はつまり言及通知であるという解釈から、リンクが必須という仕様になっています。(おかげで、あまりこの手の話が問題になることは少ないようです。)

その他のサービス、ツールでは特にそういった仕様を盛り込んではいないこともありますし、どっちが良いかという議論に決着を付けるのは難しそうです。が、リンクなしのトラックバックは嫌だなあという人のための手段を、システム的に提供してやりそれをどう使うかは本人に任せる、ということはできるでしょう。

と、いうことで Movable Type でリンクなしトラックバックを受け付けなくするためのプラグイン。mt.cgi で「サイトのURL」に指定した URL が言及元に含まれていなければ弾きます。

http://naoya.dyndns.org/~naoya/lib/mtplugins/mt-ban-norefertb.pl

MTBanASCII: コメントSPAM対策を MT3 に移植: blog.bulknews.netあたりを参考に作ってみました。Movable Type 3.1 あたりから追加された TBPingFilter callback を利用しています。3.121 以降であれば、plugins ディレクトリに放り込むだけで多分動くでしょう。よしなにお使いくださいませ。

追記: このプラグインはひとつ欠点があって、エラーメッセージをもって相手に「リンクしてね」ということを伝えられない点です。現状の Movable Type の仕組みでは TBPing callback のプラグイン内で生成したメッセージを、トラックバック返却時の文字列として渡すことができず、単に 403 Forbidden が返却されるという仕様になっています。

ので、もし利用される方は、ページのどこかに注意書きを書いておくといいかもしれません。

2005年10月1日追記

Six Apart宮川さんがこのプラグインを改良し、Movable Type 3.2 以上であればより便利に使えるようにしてくれました。Movable Type 3.2 以上をお使いの方はぜひこちらをお試しください。

Junk Filter API を使って記述されているそうです。