私の(姉)ブログに大量のコメントスパムが来ている。最近は、コメントスパムが来ていなかったので Movable Type での対処方法を忘れていました。少量なら、キーワードを設定しているので自動でスパム判定して「スパムコメント」フォルダーに入れて、自動で削除されます。でも、大量に来る場合、サーバーに負荷がかかるので、この方法だけだとまずいわけです。
そこで最初行ったことは、「.htaccess」に次の記述をしてスパムを防いでいました。
Order allow,deny allow from all deny from ***.***.***.*** deny from ***.***.***.***
でも、これはしんどいです。テキストエディターと FTP クライアントを使わねばなりません。しかし、これのメリットは、Movable Type に負担をかけない(たぶん)ことです。
四苦八苦している内に、やっと思い出しました。mt-config.cgi に以下を記述します。
ShowIPInformation 1
すると、管理画面に「禁止 IP アドレス」が表示されるようになり設定できるようになります。特定の IP アドレスからのコメントやトラックバックを制限できます。
参考サイト
- 英語と中国語のスパムコメントが増加 – The blog of H.Fujimoto
- コメントスパム送信者にコメントをさせないようにするプラグイン – The blog of H.Fujimoto
- ShowIPInformation | 環境変数リファレンス
- SAKURA Internet // サポート – オンラインマニュアル – .htaccessでアクセス制御する
- SAKURA Internet // サポート – オンラインマニュアル – ファイルマネージャーでアクセス制限をする
【追記 2011/04/22】
スパムコメント(コメントスパム)は、その後も来ています。そこで、Google で「海外からのアクセスを拒否」をキーワードで検索したところ有用なサイトがいくつかあることがわかりました。
私の場合は、中国(cn)からのコメントスパムが大半ですから、カントリーコードで識別し拒否します。
order allow,deny
allow from all
deny from .cn
ということがわかりました。ただし、中国に友人がいる場合は、この手法は使えません。
そこで、次に考えたのは、
例えば、中国からのアクセスである IP アドレス「110.82.131.250」を「WHOIS」で検索して
“110.82.131.250”のWHOIS結果
inetnum: 110.80.0.0 - 110.87.255.255
これが得られました。この「110.80.0.0 – 110.87.255.255」を「ネットマスク変換スクリプト」で変換すると
# [110.80.0.0 – 110.87.255.255]
deny from 110.80.0.0/13
が得られますから、
order allow,deny allow from all deny from 110.80.0.0/13
としますと、効率よくスパムをはじくことが出来るようです。
《参考記事》
小悪魔女子大生のサーバエンジニア日記 » Blog Archive » CIDRとは?
【追記 2011/04/25】
order allow,deny 以下を記述した「.htaccess」の置き場所ですが、コメントスパムとトラックバックスパムでは、置き場所が違うことを考慮しなければなりません。
コメントスパムの場合は、ブログを作っているディレクトリーに置きます。
トラックバックスパムの場合は、Movable Type のアプリケーションを置いているディレクトリーに置きます。
【追記 2011/07/11】
WordPress のブログであるこのサイトにも、しつこいコメントスパムが来るようになりました。Akismet プラグインは、もちろん有効化していますが、サーバーに負荷がかかるので、order allow,deny 以下を記述した「.htaccess」をブログを設置しているルート・ディレクシリーに置きました。こうすることでサーバーに負担がかかるのを軽減しています。
たまに、Akismet でこれだけブロックしました、というような表示を見かけますが(サイドバーに表示したりして)、これは、どうなんだろう? それだけサーバー(MySQL サーバー)に負荷がかかっているのだから、もっと根本的な対策である「.htaccess」でブロックすべきだと思います。
トラックバックURL:
https://serene.sakura.ne.jp/blog/2011/03/27/1253/661.php/trackback