2004年03月11日

MTのspamコメント対策

一つ前のエントリーでも述べたように、一週間ほど前からspamコメントに悩んでいました。

これまでは、手動で一個ずつ削除し、そのIPアドレスを投稿禁止にする処置をとっていたのですが、毎日1~2件のペースで同じ内容のspamがついて、全然きりがありません。どうも自動スクリプトで定期的にspamコメントが送りつけられていたようです。

で、私はこのspamを回避するために、以下の2点の対策をとってみました。
・hiddenタグをフォームに埋め込み、投稿内容を受け取るCGIでこの情報が存在するかチェックする。
・コメントの投稿処理を行うCGI名を変更する。

まだ上記修正をとってから時間がたっていないので、どのくらい有効な修正なのかは未知だったりしますが、相手が自動スクリプトなら結構効果あるのでは、と思ってます。
以下、その理由。

-- 追記 --

MovableTypeというツール、広く普及している分、同じようなURL構成になっていることが多いわけで、デフォルト設定だとコメント投稿用CGIのURLは以下のようになっています。
http://ドメイン名/CGIパス/mt-comments.cgi
で、ドメイン名、CGIパスに関しても、ホスティング場所によって結構定型化されていると思います。
このBLOGの場合、xreaでホスティングしているのですが、修正前は以下のURLにしてました。
http://www.s-hashi.net/x/mt-comments.cgi
xreaでMTをうごかしている場合、これと同じようなURL構成になっている方も多いのではないでしょうか?

さて、ここで何が問題になるかというと、URLが似ていると自動処理も行いやすくなる、という点です。例えば、xreaでMTを運営しているサイトの多くが上記URLと同じ形だとすると、ドメイン部を変えるだけで同じ処理を一括で行えるわけです。

さらに、このmt-comments.cgiというスクリプト自体結構単純な情報で動いてしまいます。MTインストール後、設定を特にいじらなければ、ブラウザ上で
http://ドメイン名/CGIパス/mt-comments.cgi?entry_id=エントリーID&author=投稿者名&email=メールアドレス&url=投稿者URL&text=本文&post=hoge
というURLを実行するだけで、難なくコメント投稿を受け付けてしまいます。

例えば、このBLOGの修正前の場合では、
http://www.s-hashi.net/x/mt-comments.cgi?entry_id=279&author=test&email=test&url=test&text=test&post=hoge
のようなURLを投げるだけで、WEBの入力フォームを経由せずに投稿が可能だったわけですね。

つまり、スパム用プログラムでは、mt-comments.cgi以下の情報を全く同じに設定して、ドメイン部分とCGIパスを書き換えたものを大量に投げるだけで周りに被害を与えることができると、まぁ簡単に言えばそんな仕組みになるわけです(多分)。

では、それを回避するにはどうすればいいか。
それは、コメント投稿時のURLが他のサイトとは異なるようにすればいい、と、そうなりますよね。そこで考えられるのが、投稿フォーム項目に、ユニークになりそうな余分な情報も追加して、CGIの方でその情報が渡ってこなければNGとして扱う、という方法です。

WEB上で、MTのspam対策を探すと、この方法がすぐに見つかると思います。
チェックボックスを追加する方法とhiddenタグを追加する方法の2パターンが見受けられますが、私はhiddenタグ追加で対応をとってみました。

あと、これはどれだけ有効かわからないのですが、コメント投稿CGIの名前自体も変更してみました。この設定変更は、mt.cfgの中の300行目付近にある

# CommentScript mt-comments.pl

とコメントアウトしてある行のコメントをはずして、任意のファイル名に変更、
そして、mt.cgiと同じディレクトリにあるmt-comments.cgiをこの設定と同じようにリネームすると対応可能です。

しかし、これでまたspamがついたら、ちょっと対応策に困りそうです。。

>> このエントリーに含まれるTAG
>> 関連するエントリー
投稿者 shaw : 2004年03月11日 01:44

Trackback

このエントリーのトラックバックURL → http://www.s-hashi.net/x/mt-tb.cgi/279