スパムコメント対策

先日より当ブログに対して英語のスパムコメントが大量に書き込まれるようになったため、コメントの受け付けを一時停止していましたが、2件の対策を行い再開しました。

1件目
当ブログはMovableType4(MT4)を利用していますが、標準で装備されているCaptcha承認を導入しました。Captcha承認とは、毎回ランダムに表示される画像に埋め込まれた文字列を入力しないとコメントを受け付けてもらえないもの。導入にあたりテンプレートの大幅な書き換えが必要かと思っていましたが、テンプレートでCaptcha画像を表示したいところにMTCaptchaFieldsタグを追加、ブログの設定でCapthcaを利用できるようにするだけで簡単でした。

Captchaを利用するとスパムコメントを拒否することができますが、一つ困った問題が出てきました。それはW3CのXHTMLチェックに通らないもの。チェックにかけるとCaptcha画像を表示するIMGタグにalt属性が無いと怒られてしまいます。これについてCaptcha処理用のファイルを書き換えることで解決しました。

/lib/MT/Util/Captcha.pmをエディタで開き、57行目以降(MT4.0の場合)に実際に出力されるタグが記されているので、IMGタグにalt属性を追加してあげればOK。自分のブログのレイアウトに合わせて他のタグを改変してもいいですね。

2件目
サーバのログを確認したところ、当ブログで使用しているMT4のコメント受け付け用プログラム(mt-comments.cgi)へのスパムと思われるアクセスが、リファラとして「http://www.google.com」を残していました。実際にgoogleから移動してきたとは考えられずリファラを改変していると思われるので、.htaccessを利用し「http://www.google.com」から「mt-comments.cgi」へのアクセスを拒否しました。

Captcha承認を導入したためスパムコメントが書き込まれることはないと思うのですが、mt-comments.cgiにアクセスがある度に少なからずサーバに負荷がかかると思うので、それを無くすためにこのような処置を行いました。

スパムコメントのためにこのような苦労をしなければいけないなんて大変だぁ~