MovableTypeでコメントスパムを防ぐ(mod_security)
スポンサードリンク
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;)"と書き換えるといいようです。「.*」が追加になります。
スポンサードリンク
トラックバック(0)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/1889
コメントする