ブログを開設して誰しも頭を悩ませるのがスパムの嵐です。特にスパムボット(スパム送信を目的にしたプログラム)による絨毯爆撃を受けて、泣く泣くコメント欄を閉鎖したりトラックバックの受付けを停止されたブログ管理者も多いのではないでしょうか?
このエントリでは Open MagicVox.net で実践中の MovableType でのスパム対策手法をまとめて紹介しています。ちなみに今現在、スパムボットに対する排除率は 100% を記録しています。
英文によるものを目にすることが多く、オンラインカジノやポルノサイトへ誘導するための URL が張られることが多いです。コメント欄がスパムで埋め尽くされていたりすると、折角面白いエントリであってもコメントを残す気力も失せてしまいます。コメントしても読まれないのが目に見えていますからね… サイトを訪問頂いたビジタとの数少ないコミュニケーションの場ですから是非とも堅守しましょう。
コメントの投稿を受付けるスクリプト(CGI)は MovableType の初期設定では mt-comments.cgi というファイル名になっています。最近はさすがに数が減ってきましたが、スパムボットの中にはこのファイル名に対して決め撃ちでアクセスしてくるものが未だにあります。そのためこのファイル名を変更することは一応の効果があります。
CommentScript post-komment.cgi
バージョン 3.2 以前の設定ファイルでは # でコメントアウトされているので、行頭の # を削除してから修正します
Step.1 でスクリプトの名前を変更しただけでは効果がありません。変更したファイル名がコメント投稿フォームの中に埋め込まれてしまっているためです。そこで JavaScript を使ってこのファイル名を隠蔽することにします。
この方法の良いところは、スパムボットがスクリプトへのアクセス自体を防ぐことにより、サーバ負荷を大幅に軽減することができるという点です。後述する CAPTCHA などの手法は非常に有効な手段ではあるものの、スクリプトが起動してからスパムを拒否するという動作のために、スクリプトへの絨毯爆撃が行なわれるとサーバが落ちるなどの危険性があります。JavaScript を評価できないスパムボットは、この段階で間違った URL へアクセスを試みて 404 Not Found
エラーとなります。
Open MagicVox.net でのアクセスログを観察してみると、この段階でスパムボットによるアクセスは 100% 防げているようです。海外の怪しいドメインからのアクセスは間違った URL へのコメント投稿を試みて尽くエラーとなっていることが伺えます( ̄ー ̄)
最後の砦はスパム対策の切り札とも言える CAPTCHA です。Step.2 で紹介した JavaScript を用いる方法は機械的に突破するのが比較的容易く、対策方法として有効なのも時間の問題でしょう。CAPTCHA については機械的に突破するためのコストが著しく高いため、スパムボット対策としては当分は効果的です。
Open MagicVox.net では自作の CAPTCHA システムを導入しています。ビジタに一手間を強いるのは気が引けますが、スパムによる機会損失を考えると導入を検討するに値するでしょう。
トラックバックでのスパム対策も基本的にはコメントスパム対策と似ています。トラックバックは外部で言及されたリソース同士を結びつけるための重要な仕組みです。トラックバック欄が充実した記事はそれだけでハブとしての情報的価値を持ちます。そんなステキな仕組みをスパムのために無駄にするのは勿体無いことです。
コメントスパム対策と同様の理由から、未だにトラックバック用のスクリプトを決め撃ちしてくるスパムボット対策です。このスクリプトは初期設定では mt-tb.cgi というファイル名になっています。
TrackbackScript trackback-me.cgi
バージョン 3.2 以前の設定ファイルでは # でコメントアウトされているので、行頭の # を削除してから修正します
Step.1 でファイル名を変更しても、その変更したファイル名が漏れてしまっては意味がありません。MovableType には Trackback Auto Discovery という仕組みがあります、ここにそのファイル名が書かれてしまっています。MovableType の管理画面から[テンプレート]-[アーカイブ]と進み、個別アーカイブテンプレートを修正することでこれを削除できます。アーカイブテンプレート中に MTEntryTrackbackData
というテンプレートタグが在る場合、このタグを削除します。
これによりスパムボットはトラックバック URL を機械的に知ることが難しくなりました。トラックバック用スクリプトへのアクセスが激減することから、サーバ負荷も大きく下がることと思いま。
なお、Open MagicVox.net では、この段階でトラックバックスパム排除率が 100% です。未だにファイル名を変更する前の mt-tb.cgi 宛に来て 404 Not Found エラーになるものが居ますが、変更後のスクリプトにアクセスできたものは未だありません( ̄ー ̄)
この Trackback Auto Discovery の仕組みを無効にすることにはデメリットもあります。hxxk.jp - Movable Type の Trackback auto-discoveryにその機能の概要やメリット、デメリットがまとめられています。
スパムボット対策の決定打はやはり CAPTCHA だと言えます。CAPTCHA の導入は少し敷居が高いものの、効果は十分に期待できます。この CAPTCHA をトラックバックにも利用できればスパムボット対策にも心強いものです。
Open MagicVox.net では、トラックバック URL の告知欄で CAPTCHA コードの入力をお願いしています。 そしてプラグインを用いて、正しい CAPTCHA コードが入力されていないトラックバックはエラーとなるようにしています。
これまでに挙げた方法でスパムボットによって機械的に行なわれるスパム行為はほぼ防げるものと思います。しかしそれでも尚、送られてくる検索トラックバックやアフィリエイトサイトへ誘導するための宣伝スパムは防ぎようがありません。これについては注意書きなどでお願いするくらいしか方法がないのですが、こういった行為をする相手にはお願いなんて読まれているハズもありません。頭痛の種は永遠に無くならない訳ですね。合掌。
寄せられたコメント (全 1 件中、最新 5 件まで表示しています)
コメントスパム対策を探していて、ここに辿り着きました。
参考になります。
サーバの負荷を軽減する方法はないかと探していましたが、
JavaScriptによるファイル名の隠蔽は今のところ効果的に機能しています。
有益な情報をありがとうございます。