web-dev-qa-db-ja.com

.htaccessでの不正なボットのブロック-ブロックリストまたは許可リストを追加する必要がありますか?

昨日、許可されたCPUの超過により、Sitegroundホスティングアカウントが停止されました。 WPハートビートAPIを無効化または制御することの推奨に加えて、サイトに送られる悪いボットと悪いトラフィックをブロックすることも推奨されました。

ヘルプラインの担当者は、次の数行を.htaccessファイルに追加することを推奨しました。

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
RewriteCond %{HTTP_USER_AGENT} (bot|crawl|robot)
RewriteCond %{HTTP_USER_AGENT} !(Bing|Google|msn|MSR|Twitter|Yandex) [NC]
RewriteRule ^/?.*$ "http\:\/\/127\.0\.0\.1" [R,L]

このコードは、基本的に「Bing | Google | msn | MSR | Twitter | Yandex」を除くすべてのボットをブロックします。

さらに詳しく調べ始めると、.htaccessファイルを使用してボットをブロックする方法に関する有益なビデオやチュートリアルもいくつか目にしました。たとえば、 このビデオはこちら 。ただし、この場合、許可したいボットの代わりに、ブロックしたいボットに約30行追加します。

ボットのリストをALLOWに追加するか、ボットのリストをBLOCKに追加する必要がありますか?

3
Joe Bloggs

ボットの種類

ボットについて考える1つの方法は、ボットを合法的カオスおよび善悪スペクトルに従うものとして扱うことです。

(ボットは悪になれないが、悪をしている人々に代わって行動するように指示することができる。)

Chaotic goodの例はShodanです。Shodanは、他の人がシステムを使用できる場合でも、独自のシステムの調査とチェックを行うことでセキュリティを向上させます。

ブロックするボットは役立ちますか?

実際には、クォータが本当に低くない限り、良いボットがサイトにアクセスすることはほとんどありません。クォータがこのように低い場合、サイトを通常どおりクロールするだけでDoSを行うのは簡単です。

悪いボットは良いボットを偽装するだけなので、これによってブロックされることはありません。ユーザーエージェントの制限は、合法的なボット(および場合によっては中立的なボット)のみを停止します。

これは問題を引き起こしますか?

おそらく、Webサイトチェッカー(サイトが感染しているかどうかわからない場合はユーザーをブロックするもの)、コンテンツフィルター(デフォルトでブロックされる場合があります)、Alexaなどのツール(サイトによって異なります)など、あらゆる種類のツールがスクレイピングを使用します提供)。

悪いボットを停止するにはどうすればよいですか?

Cloudflareのようなサービスを使用できますが、それでもすべてのボットが停止するわけではありません。ユーザーに迷惑をかけずに人間とボットの違いを検出できれば、reCAPTCHAを置き換えて素晴らしいサービスを利用できます。

2
jrtapsell

許可特定のボットは、いくつかのトラブルを引き起こします。

たとえば、Alexa、ArchiveなどのロボットがWebサイトにアクセスするのをブロックします。

悪いロボットをブロックすることをお勧めしますユーザーエージェントによって。

重要な注意点

不正なボットは、リクエストヘッダーのユーザーエージェントを変更できます。したがって、これは悪いクローラーからあなたのウェブサイトを完全には保護しません。

1
Shayan Davoodi

更新:私の質問に続き、これをさらに調べて、Blackhole for botsというプラグインに出会いました。

善良なボットは当然robot.txtファイルに従うべきですが、悪いボットはそうではありません

このプラグインが行うことは、トラップ禁止コマンドラインをrobots.txtファイルに追加することです。

ボットがDisallowコマンドラインを無視し、その後に関係なく、トラップ「ブラックホール」に陥り、基本的にサイトからロックアウトされます。

プラグインには、既知の正常なブートをデフォルトでホワイトリストに登録するホワイトリストもあります。

これまでのところ、これはうまく機能しています。

0
Joe Bloggs