Movable Type
またまた、トラックバックスパムの送信量が増えてきたので、スパム対策をもっと強化してみました。
またまた、最近になってトラックバックスパムを送信される量が増えてまいりました。バスワード生成ソフトで作った数桁の英数の組み合せたパスワードをファイルネームに含ませる事にして、過去3回パスワード部分をリネームして対策していたのですが、回を追うごとに、スパム業者に発見される期間が短くなってきたのが原因の様です。スパム業者のサーチボットも日進月歩といったところでしょうか。幸い、コメントスパムの方は、前回のプラグイン導入で、「MT4i」経由のスパム以外、ほぼ9割方駆逐することに成功しているので、こちらは、速急な対策は必要ない様です。
いろいろと調べてみると、スパム業者のサーチボットは、ページ上に書かれているトラックバックURLを収集して、トラックバックを送信しているらしいのです。という事はサーチボットにトラックバックURLを収集させないようにすれば問題無いという事で、導入したのは、「お気楽極楽ブログ」さんちで公開されているプラグイン「doEntity」です。
このプラグインは、トラックバックURLを実体参照文字に変換する機能を持っています。実体参照文字とは、HTML文書やSGML文書で、直接記述できない文字や記号(マークアップで使われる<や>、&など)を表記してブラウザーに表示させる方法なんだそうです。
実体参照文字に関する詳しいことは、「お気楽極楽ブログ」さんのエントリー「トラックバックスパム予防プラグイン for MovableType」を読んで貰うとして、覚え書きも兼ねて設置手順を書きます。
- まず、こちらから、「doEntity」プラグインをダウンロードします。
- 圧縮ファイルを解凍すると、「doentity1.11.pl」というファイルが出来ます。
- 「doentity1.11.pl」を「Movable Type」のPluginsディレクトリにアップロードして下さい。
- 終わったら、パーミッションを644や600とかに設定します。
- ブラウザーからシステム・メニュー の管理画面に入り、プラグインの項目で「doEntity」が表示されていたらインストール成功です。
- 次に、テンプレートに入り、トラックバックのURLが表示されるテンプレート(個別エントリーアーカイブだけだと思う)から<$MTEntryTrackbackLink$>を探し出して、doentity="1"を書き加え、<$MTEntryTrackbackLink doentity="1"$>とします。
- 保存したら、エントリー全体を再構築すれば終了です。
これで、トラックバックURLは実体参照文字化されました。ただ、これで完璧ではなく、mt-tb.cgiのファイルネームをリネームすれば、より強固になります。
しかし、これでも不十分らしく、表には表示されないけど、ソース上でトラックバックURLが書かれている箇所があるのですヨ。それは、テンプレートで書かれている<$MTEntryTrackbackData$>が生成するタグに書かれているのです。ココの表示をどうにかしないと、結局はスパム業者のサーチボットにトラックバックURLを発見されてしまうわけです。
この<$MTEntryTrackbackData$>が生成するタグは何に使っているかというと、1クリックで投稿できる、クイック投稿(Bookmarklet)とか、トラックバック自動検知機能を使ってエントリーを書いてる人に情報を与える為に生成されているらしいのです。恐らく、スパム業者のサーチボットは後者の機能を悪用してスパムをばらまいているのではないかと思われます。個人的に、クイック投稿は意外と不便なので使ってないし、トラックバック自動検知機能は、サーチに時間が掛かるため遅いサーバだと500エラーが出まくるのと自分のエントリー内容とは関係ないエントリーを拾ってきたりするので使っていない場合の方が多いと思われますので、自分はこのタグを外しても何ら問題ないと判断したので、外すことにしました。
これで、「Naga BLOG」のページからスパム業者のサーチボットが読めるトラックバックURLが存在しなくなり、リネームもしている事から、トラックバックスパムを大量に送り込む事はできなくなった筈です。
それでも、手動でチマチマとトラックバックスパムを送り込まれたら、どうにも対策の施しようが無いのですが、そこまでする奴はいないでしょう。
これで平和は訪れるだろうか?
--追記--
「materializing」さんの「MTに届くコメント・トラックバックスパムを防ぐ対策」エントリーによると、「doEntity」プラグインをコメントの送信フォームの送信先リンク適用すれば、スパム業者のサーチボットの対策になるとのことで、テンプレートを変更してみる事にしました。ただ、これでも完璧ではなく、TypeKeyの認証用アドレスの部分にアドレスがまんま表示されているので、これをどうにかしないと、やっぱりスパム業者のサーチボットから、スパムコメントを送り込まれてしまいます。そこで、ここも同様に実体参照文字にしなければいけませんので、試してみたら問題なく出来ましたヨ。
というわけで、作業してみましたヨ。
- テンプレートに入り、送信フォームがある個別エントリーアーカイブから2箇所ある<$MTCGIPath$><$MTCommentScript$>を探し出して、doentity="1"を書き加え、<$MTCGIPath doentity="1"$><$MTCommentScript doentity="1"$>とします。
- 次に、2箇所ある<$MTRemoteSignInLink static="1"$>を探し出して、doentity="1"を書き加え、<$MTRemoteSignInLink doentity="1" static="1"$>とします。
- <$MTRemoteSignOutLink static="1"$>も2箇所あるので同様に探し出して、doentity="1"を書き加え、<$MTRemoteSignOutLink doentity="1" static="1"$>とします。
- 保存したら、エントリー全体を再構築すれば終了です。
これで、mt-comment.cgiにつながるリンクは実体参照文字となり、スパム業者のサーチボットからは見えなくなったと思います。「MT4i」を使っているので、ここから送り込まれる可能性はありますが、ほぼ抜けてこなくなったと思いたいです。
コメント [2]
リンク先が消えていましたが、ミラーサイトを発見しました。
http://nsf.jp/movabletype/doentity.html
↑です。
>リンク先消えてますよさん
亀レスですみません。
ご指摘ありがとうございます。今、すこぶる忙しい状態ですので、ミラーということもありますし、しばらくこのままにしておこうかと思っています。「doEntity」が必要な方は、http://nsf.jp/movabletype/doentity.htmlからお願いします。