« Tomcat5.5 PostgreSQLでDBCP | メイン | Tomcat5.5でMovableTypeのエントリーの表示 »
コメントスパムを防御できた!
2004年09月15日

先日仕込んだとりあえず版のコメントスパム対策ですが、今日みごとにひっかかってくれました。

う、う、うれしい~っ。
#でもどうせ「イタチごっこ」だろうから、そのうち破られちゃうのかなぁ?

9月6日に仕込んだものの、な~んもひっかかってくれなくてさびしかったんです。
それがやっと9日目にしてコメントスパムがやってきました。

そのときのログです。→spammer.txt

コメントスパムのログの1つを例にとります。


---- spammer info( 05:18:47 15/Sep/2004) ----
query_string:damedamespam_051831_150904_mail.gamblingshift.com_66.135.34.87
posted address:64.5.152.67

敵はformに記述しておいたパラメタ(damedamespam_051831_150904_mail.gamblingshift.com_66.135.34.87など)をただしく返してきていました。

ですけれど、POSTするときにIPアドレスを偽装していたのです。
"66.135.34.87"というIPアドレスで、コメントを投稿するFormを表示したくせに、実際にPOSTするときいは"64.5.152.67"になっています。

こんなことやる人、普通いないので、スパマー確定ですよね。

しかも最初の登録時に、


You must comment in the right way.

っと画面に表示されているはずなのに、しつこく6回もトライしているなんて....あきらめの悪い奴です。

対応方法ですが、SSIを使える環境であれば実装できます。
(1)Formタグを表示する場所は2箇所です。
ひとつは、Individual Entry Archiveテンプレート。
コメントを入力していただく部分のformタグに、上記query_stringを出力するSSIの実行を入れます。
もうひとつは、lib/MT/Template/Context.pmです。(確認入力のformはなぜかここで定義されています。)
1220行目付近にformタグの記述がありますので、そこに同じくquery_stringを出力するSSIの実行を入れます。

#CGIで出力した結果に、SSIがあってもちゃんと動作するんですね。
Apacheの設定で拡張子cgiでSSIを動くように設定が必要ですが、本当はとても危険だと感じています(もしかしたらやめるかも)。
確認入力からのPOSTの場合は、スパムのチェックをパスするようにすればよいのかもしれません。
#こんなこと、ここで書いても大丈夫ですよね?
#敵は日本語、読めないですよね?(笑)

(2)SSIとmt-commentsの修正内容については、まったくもってお恥ずかしいスクリプトですし、公開は控えたほうがよいと考えています。
(たぶんいらっしゃらないとは思いますが、興味のある方にはご連絡いただければお返事さしあげたいと考えています。)

(3)MTの管理画面で最初にアクセスしてきたIPアドレス(damedamespamについているほう)をブラックリストに登録すべきです
※POSTしてきたアドレスではないですよ~!!(こちらは単なる踏み台なので)

(追記)
っと思っていたのですが、MTの管理画面で禁止IPに登録しても、通常のアクセスはできちゃうのでしょうか。「コメントやトラックバックの送信元IPアドレスを制限することができます。」
って書いてるので。
じゃぁ、意味がないかも。
すべてのアクセス(閲覧も)禁止!っていう設定はできないのかなぁ??

(さらに自分にツッコミ)
もう、ぼけちゃってますよねぇ~
最初に閲覧されるのは静的なHTMLなんですから、.htaccessででも拒否すればいいですね。
#でも、気力わきません。たいした手間でもないのに、「なぜ.htaccessだと疲れるのか?」謎ですが。

投稿者 megu : 2004年09月15日 12:52

コメント

初めまして、コメントスパム対策を色々さがしてて辿り付きました。
GETとPOSTのIP判別でスパムをブロックするこの対策に非常に興味があります。
他にこの様な対策は見かけた事が無いので、もし宜しければソースお教え願えないでしょうか?

投稿者 : 2005年02月05日 18:23

鋼さん、はじめまして。
上のやり方は、まともにコメントされたら(=このコメント欄に入力して、IPアドレスなど変えずに普通に投稿ボタンを押す)、駄目なんです。
不正なスクリプトを使った場合には対応できると思うのですが。
一時、しのげていたのですが、その後ちょこちょことやってくる正当オペレーションコメントスパム(笑)には太刀打ちできていません。

ソースですが、かなり前のことなので、私の頭の中が整理できるまでお待ちくださいね。(って、たいした中身でもないのですが)

投稿者 megu [TypeKey Profile Page] : 2005年02月06日 08:15

有難う御座います、ソースの件よろしくお願いします。

>上のやり方は、まともにコメントされたら…

との事ですが、スパマーの偽装を一段階は防げるわけですしそれだけでも十分じゃないでしょうか?
他の対策も同時に使えばより効果も高まると思われますし、ま~ この辺りはスパマーとの
いたちごっこって感じなんでしょうけども(笑)

投稿者 : 2005年02月06日 15:54

コメントしてください




保存しますか?