当ブログでは、アクセスログを取っているんですが、少し前から短時間にリクエストを頻繁に繰り返すログがあって、なんなの?と思っていたらどうやら、韓国の検索エンジン「naver」のクローラがきているらしい。
この「naver」のロボット(クローラ)は、すこぶる評判が悪い。そりゃそうだ、普通検索エンジンのクローラ(例えばgoogleやmsnにしても、ちゃんと時間をあけてやってくるし、そんなに短時間に数十回もリクエストしてこない!サーバーに負荷をかけるからだ)
naverはIPアドレスを変えながら、一気にアクセスしていく。こんな感じで。
2007/12/07 08:52:39 61.247.192.18 "Mozilla/4.0 (compatible; NaverBot/1.0; http://help.naver.com/delete_main.asp)"
2007/12/07 08:51:49 61.247.192.24 "Mozilla/4.0 (compatible; NaverBot/1.0; http://help.naver.com/delete_main.asp)"
2007/12/07 08:50:44 61.247.192.18 "Mozilla/4.0 (compatible; NaverBot/1.0; http://help.naver.com/delete_main.asp)"
2007/12/07 08:49:15 61.247.192.45 "Mozilla/4.0 (compatible; NaverBot/1.0; http://help.naver.com/delete_main.asp)"
2007/12/07 08:48:45 61.247.192.49 "Mozilla/4.0 (compatible; NaverBot/1.0; http://help.naver.com/delete_main.asp)"
酷すぎる。
NaverBot – Wikipediaによると…
クローラとしてのアルゴリズムの悪さから問題となった。
- 秒間隔で次々リクエストを行うため、DoS攻撃のようにサーバーを不安定にさせる恐れがある。良心的なクローラであれば、適度に時間を空けてリクエストを行う。
- 全てのディレクトリに対し、default.htm, default.html, home.php等インデックスに使われそうな名前のページを、ページの有無を確認せずにリクエストする。
- セッションを識別せず、同じURLに対してセッションだけ変えて何度もリクエストを行う。
- サイト管理者が用意するrobots.txt(クローラのアクセスを制御するファイル)を読み込みながらも無視。あるいは、robots.txtを短時間に何度も読み込む。
- HTMLのMETAエンティティを使ったロボットのアクセス制御を無視する。
やれやれ。これだけ頻繁にリクエストされると本当に負荷がかかって仕方ない。というわけで対策方法。
.htaccessで特定のユーザーエージェントからのアクセスを制限する方法
nao3 blog | スパムと戦う日々@NaverBot-1.0
上記を参考に、.htaccessに以下の記述を追加。クローラからのアクセスを制限するには、ユーザーエージェントで拒否をする。
SetEnvIf User-Agent "Naver" deny_ua
order allow,deny
allow from all
deny from env=deny_ua
ただし、naverは頻繁にユーザーエージェントを変えるので、ちょっと注意が必要。全く。