web-dev-qa-db-ja.com

Wordpressボットからのセキュリティ

私のクライアントWebサイトの1つは、中国からの大量のトラフィックを取得しています。そのほとんどはボットです。これらのボットは、VMが非常に高いCPUとメモリを使用する原因となって、サイトにノンストップでヒットしています。その結果、サイトがクラウドでホストされているため、クライアントの費用がかかります。

ほとんどのIPをブロックしました。私は国全体をブロックしましたが、それは助けにならないようです。それでも、このサイトは1分間に大量のヒットを取得しています。

これらのボットは、電子メールフォームのある特定のURLにヒットしています。メールフォームを削除しました。 URLを変更し、古いURLを別のサイトにリダイレクトしました。

ただし、これらのいずれもCPUおよびRAM使用量に影響を与えないようです。どんな助けも大歓迎です。

ありがとう

1
arifur

IPアドレスをブロックする

特定の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>

ソース

その他の技術

この記事 には他にも使用できるテクニックがいくつかあります。この記事ではそれぞれについて詳しく説明しているので、そこでそれぞれの詳細を読むことをお勧めします。

  • ブロッキングを行うホスティングを見つける
  • CDNを使用する
  • MaxMindなどのApacheモジュールをインストールする
  • アプリケーション(PHPなど)でブロッキングを実装する
  • ルーティングテーブルを使用する
  • WebサーバーでModSecurityを使用する
  • CloudFlareなどのプロキシサービスを使用する
1