M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2006年11月25日 00:01

MovableTypeでコメントスパムを防ぐ(mod_security)

このエントリーをはてなブックマークに追加 mixiチェック

blog のコメントスパムってうざいですよねー。この blog にもちょくちょくきているんですけれどもー、どっちかというと、会社で MovableType 商用利用しているので、そこにボンボコボコボココメントスパムやらトラックバックスパムやらくるのです。なにげにすんごいコンテンツを誘致しちゃって、エントリが多いってことは表面積でかいですから、標的になるとサーバ死にそうです。

ということで、mod_security を導入して、対処しようってことになったわけです。mod_security てなに? ていう人は、GIGAZINE の記事 [gigazine.net] でもどうぞ。

※Apache のモジュールなので、サーバをいじることができないと導入できないよ。

トラックバックスパム防止

検索したら、

mod_secutiryを使ってApacheでTrackback Spamを弾く : blog.nomadscafe.jp [blog.nomadscafe.jp] が見つかった。

抜粋:

<Files "mt-tb.cgi">
    SecFilterEngine On
    SecFilterScanPOST On
    SecFilterDefaultAction "deny,log,status:406"
    SecFilterSelective POST_PAYLOAD "^[\x00-\x7F]+$"
</Files>

つまり POST で送られてくるやつが ASCII 文字 Only だったら打ち落とすわけですね。追記も確認。このままだと日本語 blog からの Trackback もはじいてしまいます。

コメントスパム防止

僕は今日一日別の部署に行っていたんですけれども、その間にどうもコメントスパム防止をしようとして失敗したんだそうです。単純に、トラックバックスパムのときのやつを流用して、CGI 名だけ変えた場合、MovableTypeは、「確認」「投稿」とかを POST にいれやがるので、ふつーにダメー☆です。

なので、こうしました。

<Files "mt-comments.cgi">
    SecFilterEngine On
    SecFilterScanPOST On
    SecFilterDefaultAction "deny,log,status:406"
    SecFilterSelective REQUEST_METHOD "^POST$" chain
    SecFilterSelective ARG_author "^[\x00-\x7F]+$" chain
    SecFilterSelective ARG_email "^[\x00-\x7F]+$" chain
    SecFilterSelective ARG_url "^[\x00-\x7F]+$" chain
    SecFilterSelective ARG_text "^[\x00-\x7F]+$"
</Files>

これは、POST の全部じゃなくて一部だけを見るってことですね。なんだかすごい!

これを応用すると、フォームがあるとメール送信だと思って何でもつっこんでくるみさかいなくはれんちなあちらのボットを打ち落とすことができそうですね。

CentOS 4 への mod_security 導入方法については、またの機会に。


(2006-11-27 10.48追記)

この状態のママでは、ココログ等 TypePad からの Trackback も阻止されてしまうことが確認されました(CentOS4+modsecurity-apache-1.9.4-1.EL4.i386.rpm にて確認)。後日補足エントリを上げますが、とりあえず、

/etc/httpd/conf.d/modsecurity.conf (セットアップによる)

SecFilterSelective HTTP_Content-Type "!(^application/x-www-form-urlencoded$|^multipart/form-data;)"
SecFilterSelective HTTP_Content-Type "!(^application/x-www-form-urlencoded.*$|^multipart/form-data;)"
と書き換えるといいようです。「.*」が追加になります。

投稿 大野 義貴 [Web] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/1889

コメントする