私のクライアントWebサイトの1つは、中国からの大量のトラフィックを取得しています。そのほとんどはボットです。これらのボットは、VMが非常に高いCPUとメモリを使用する原因となって、サイトにノンストップでヒットしています。その結果、サイトがクラウドでホストされているため、クライアントの費用がかかります。
ほとんどのIPをブロックしました。私は国全体をブロックしましたが、それは助けにならないようです。それでも、このサイトは1分間に大量のヒットを取得しています。
これらのボットは、電子メールフォームのある特定のURLにヒットしています。メールフォームを削除しました。 URLを変更し、古いURLを別のサイトにリダイレクトしました。
ただし、これらのいずれもCPUおよびRAM使用量に影響を与えないようです。どんな助けも大歓迎です。
ありがとう
特定のIPアドレスがサイトに何度もアクセスしていることがわかった場合は、それらを個別にブロックすることができます。htaccess
Order Deny,Allow
Deny from 1.1.1.1
Deny from 2.2.2.2
Deny from 3.3.3.3
。htaccessのIPアドレスで世界の地域全体をブロックするには、ルールが多すぎます。たとえば、米国をブロックするには150,000行のテキストが必要です。 ( ソース )
ボットが主要なブラウザをスプーフィングしていない場合、ユーザーエージェントによってブロックできます。
# Bot Blocker
<IfModule mod_setenvif.c>
SetEnvIfNoCase User-Agent ^$ keep_out
SetEnvIfNoCase User-Agent (pycurl|casper|cmsworldmap|diavol|dotbot) keep_out
SetEnvIfNoCase User-Agent (flicky|ia_archiver|jakarta|kmccrew) keep_out
SetEnvIfNoCase User-Agent (purebot|comodo|feedfinder|planetwork) keep_out
<Limit GET POST PUT>
Order Allow,Deny
Allow from all
Deny from env=keep_out
</Limit>
</IfModule>
( ソース )
この記事 には他にも使用できるテクニックがいくつかあります。この記事ではそれぞれについて詳しく説明しているので、そこでそれぞれの詳細を読むことをお勧めします。