久々にMovableTypeのスパム対策の話
いくら禁止ワードを設定しても、禁止URLを設定しても、MTBanASCIIなどで1バイト文字オンリーを禁止しても、それらを楽々とすり抜けてしまうスパムが時々やってくるが、以下な感じのアクセスでやってくるっぽい。
▲クリックで拡大: 本日、たまたま補足出来たエラーログ。
(普段はエラーログをサーバーに残していない)
MovableTypeのコメントCGIの中身を熟知してる奴が、意図的にエラーを発生させて強制的にスパムフィルターをすり抜けて来ているような気がする。
普通一回しか呼び出さない変数を2回呼び出したり、パターンマッチで意図的にエラーが出るよう仕組んでいる模様。
いくらプラグインで禁止キーワードを設定しても無理なわけだ。
対策方法
過去に何度もスパム対策して、様々な方法を紹介しているが、一番効果があるのは以下の組み合わせ。リンク先に細かい解説があります。MTプラグインのスパムフィルターより100倍強力です。
- コメントCGI、トラックバックCGIをリネームする。
Bot対策として非常に有効。闇雲にmt-comments.cgiを探してスパムして来る連中はこれで殆ど対策できる。Webページをクローリングするタイプにはすぐバレるので、HTML内に記述するcgiアドレスは少しだけ細工する(適当な文字列を余分にくっ付けておいて、別途「トラックバックの際は文字列XXXを削除して下さい」などとお願い文を掲載) - htaccessで日本以外のIPを遮断する(上と同じページ)
国外からのコメントを期待する場合には、この方法を実施しないでおく。
効果絶大。 - htaccessでhttp1.0の接続を遮断する
スパムBotの95%以上がhttp1.0を利用して接続してくるので、すごく有効。
検索エンジンのクローラーなどもhttp1.0を利用するので、cgi以外にこの禁止設定を行うと大変な事になる - htaccessでWindowsXP+IE6の組み合わせを遮断
Windows98/2000/XPとIE6あたりからのコメント・トラックバックはそろそろ禁止した方が良いかもしれない。現状、上記「1.」~「3.」をすり抜けるBotスパムは全てXP+IE6の組み合わせ。セキュリティの甘いPCが乗っ取られ、ゾンビ化してあらゆるサイトを攻撃しています。
今はもうMTにスパム対策プラグインは一切導入していないが、この半年はコメント・トラックバックCGIにスパムがやって来るのは1日10~20件程度。すり抜けて来たのは1~2件。
その1~2件は手動で打ってきたモノっぽい。Botによる自動スパムは全て防げるようになった。