Movable Type4のプラグインを勉強してまして、昔MT3向けに作ったのをMT4向けに書き直してみました。
スパム対策、スパム予防を目的としたプラグインです。
Antibotプラグイン
元ネタは手前ミソのMT3向けプラグインです。
トラックバックスパムの大半は、ロボットで自動的にトラックバックURLを収集して、自動的に送信しているのであろうと思う。
なので、トラックバックを弾く以前に、そもそも送信されないための予防対策ってのもあっていいんではないかと。
送信される数が減れば、弾く処理も減って、サーバ負荷も減りますからね。
というわけで、ロボットにトラックバックURLを発見されにくくするための doEntity プラグイン
今回作った Antibotプラグインも機能は doentity と同じで、ブログページのテキストを bot に解釈されにくくします。詳細は後述しますが、グローバルモディファイアとブロックタグを実装しているので、トラックバックURLの出力以外にも幅広く利用できるようになっています。
実は、doentityを書いた時は数値参照文字を実体参照文字だと誤認していたり、プラグインの設定をソース編集にしてしまったりしていたので、今回、renameして根本的に書き直した次第です(Perlも随分勉強したし)。
ダウンロード
ダウンロードしたファイルは解凍して、/Antibot/ ディレクトリごと ~MT/plugins/ に設置してください。
パーミッションの変更などは不要です。
~MT/plugins/--/Antibot/-+- Antibot.pl
|
+-/lib/---/Antibot/-+- L10N.pm
|
+-/L10N/-+- en_us.pm
ja.pm
システムメニューのプラグインに Antibot がリストされていれば正しく設置できています。
ほとんどデフォルト設定で問題ないとは思いますが、各ブログの ツール>プラグイン メニューで Antibot の設定変更が可能です。
Antobot の使い方
主に、mt-tb.cgi や mt-comments.cgi のURLを出力する際に利用されることを想定しています。
<グローバル・モディファイアとして利用する場合:antibot属性>
文字列を吐き出すMTタグに antibot="1" という属性を追加して機能させます。
<$mt:EntryTrackbackLink antibot="1"$>
通常なら「 http://www.example.com/mt/mt-tb.cgi/2 」などのURLになるところが、
ってな感じに変換されて出力されます。
もちろん、ブラウザの表示上は何も変わりません。HTMLソースで数値参照文字になっているだけです。
Antibotプラグインを使用した上で、mt-tb.cgi や mt-comments.cgi を変名して利用(mt-config.cgi で設定)すると、少なからずスパム予防に効果があるでしょう(ゼロになるかと言えばそれは難しいかもしれませんが)。
裏技として、antibot="2" とすると、JavaScript による出力も織りまぜられ、さらにHTMLソースが複雑化します。
ただし、HTMLの属性値などに JavaScript による出力がまざると、HTMLが崩れますのでご注意ください。
また、antibot="1" でも JavaScript による出力を有効にするには、ブログごとのプラグイン設定で変更してください。
<ブロックタグとして利用する場合:MTAntibotタグ>
効果は同じですが、以下のようにブロックタグとしても利用できます。
HTMLタグは基本的に変換しないように処理しますが、もれることもあるかと思います。また、もともとの数値参照文字や実体参照文字が1文字ずつ数値参照文字に変換されてしまうので、そうした文字を含む文字列に適用しないように注意してください。
最後に
残念ながら、ダイナミックパブリッシングには未対応です。
また、ブログの運用文字コードがUTF-8以外だと化けるかもしれません(レポート下さるとうれしいです)。
さらに、MT3.Xでは動作しません。
すいませんすいません。
でも、MT4.X には是非、使ってみてください(´ー`)
![[TypeKey Profile Page]](http://tech.bayashi.jp/nav-commenters.gif)

perl版ダイナミックパブリッシングでも良いので、なんとか4.24で動くようにならないでしょうか。
現在、プラグインのロードに失敗していてエラーログの嵐です。
もし、お手すきの時にでもちょこっと修正して頂けるとても嬉しいです。