.htaccessでIPアドレスの制限をかける方法と海外ブロック+検索BOTだけ許可しない理由

たまにお客様から、変なIPからの大量アクセスでサイト見れなくしたよ、ってサーバー会社から連絡が来たんですけどどうすれば?!と連絡を頂きます。

そういうときは、とりあえずログから調査して、該当のIPを.htaccessに以下のように記述をしてブロックします。

#↓で許可を優先させる
order allow,deny
#↓で一旦全員許可
allow from all
#↓で特定IPアドレスをブロック
deny from ここにIPアドレス

大概は海外からの攻撃だったりするので、いっそ海外からのアクセスをブロックしてしまって、以下のように.htaccessに記述をして、Googleとかの検索エンジンからのbotだけ許可すればいいんじゃね?とは思います。

例:Googlebotを許可する場合

SetEnvIf User-Agent "Googlebot" searchbot
allow from env=searchbot

 

が、思わぬ落とし穴が。

実際にありましたが、Googlebotと偽り、ブロックをすり抜けてくる場合があります。

そんな場合は、とりあえず何日かおきに、逆に検索botのIPを抽出してホワイトリストを.htaccessに記述しアップ・・・これを何か月かほとぼりが冷めるまで続けます・・・。何かいい方法はないものか・・・。