不正なロボットに対処するための戦術


9

規制上の理由で、インデックスに登録されない、または自動的に検索されないサイトがあります。これは、すべてのロボットを遠ざけ、サイトをスパイダーで防ぐ必要があることを意味します。

明らかに、最初からすべてを許可しないrobots.txtファイルがあります。ただし、robots.txtファイルの監視は、正常に動作するロボットだけが行うことです。最近、動作の悪いロボットにいくつかの問題がありました。いくつかのユーザーエージェント禁止するようにApacheを構成しましたが、それを回避するのは非常に簡単です。

それで、問題は、ロボットのような動作を検出して応答するように(おそらくいくつかのモジュールをインストールすることによって)Apacheを構成するいくつかの方法がありますか?他のアイデアは?

現時点で私ができることは、ログの手動検査に基づいてIPアドレスを禁止することだけであり、これは単に実行可能な長期戦略ではありません。


Apacheモジュール(mod_evasiveを確認してください)について質問していて、カスタムログ解析とiptablesルールがソリューションに含まれる可能性がある場合、特定のボット動作のブロックについて質問がある場合、このトピックはServerFault.comのより良い候補になる可能性があります。
danlefree

回答:


7

隠しページにリンクして、訪問したときにボットのユーザーエージェントとIPアドレスをキャプチャし、それらの一方または両方を.htaccessファイルに追加して永続的にブロックすることができます。自動化されているため、メンテナンスのために何もする必要はありません。


これは非常に興味深いアイデアですが、非常に一般的なユーザーエージェントを使用している場合は、ユーザーエージェントを自動的にロックアウトする必要はありません。
クリス

私はその時IPアドレスに固執するでしょう。さらに、Iアドレスを使用してIPのブロックからパターンを確認すると、個々のIPの長いリストを維持する代わりに、1つの単純なルールでそれらすべてを簡単にブロックできます。
John Conde

3
あなたはあり何気なくサイトをクロールから悪いボットを停止から説明された方法を使用します。しかし、1)バイパスすることは可能です(悪いボットとそのマスターは、ハニーポットを特定する方法を学び、ハニーポットを回避する方法を知っている可能性があります)。2)この方法は、不正なボットに属するものとしてブラックリストに登録されているIPを再割り当てされた正当な人間のユーザーもブロックする可能性があります。サイトをインデックスに登録しない、または自動的に検索しないようにする法的または規制上の義務がある場合は、適切な認証を使用し、認証されたユーザーにのみアクセスを許可する必要あります。それ以外はすべて安全ではありません。
フリーラジカル

良いアイデア。しかし、それを実装した場合、誤って自分でハニーポットにアクセスし続け、自分のサイトからブロックされ続けることになるでしょう。
JW01 2014年

@ JW01これを回避するために必要なことは、これを処理するページにアクセスしないことです。その上にコンテンツがないので、それは簡単に実行できるはずです。
ジョンコンデ

2

Project HoneypotのIPブラックリストとインターフェースするApacheモジュールを使用することにより、他の人々が悪いIPを特定するのに行った仕事に便乗することができます。これを大規模に実行している場合、ハニーポットを実行することを提案するのはおそらく礼儀正しいでしょう。


私のサイトにProject HoneypotのIPブラックリストを追加したときは驚きました。長年の苦悩は、単に悪者をブロックすることで終わった。あなたもそれで検索エンジンボットを検出できると思います。そのため、プラス1します。
JW01 2014年

しかし、問題の核心は次のとおりです。公開ページがある場合は、それらにインデックスが付けられることを期待してください。したがって、何らかの認証が必要です。Michael Hamptonの回答を参照してください
JW01 2014年

2

Gisle Hannemyr がコメント述べたように、これを行う最善の方法は、すべてのユーザーのログインを要求し、ログインしていないユーザーに制限されたコンテンツを提供しないことです。

何らかの理由でログインを要求できない場合でも、いくつかのフォールバックを使用できます(免責事項:どちらも部分的または完全に私の責任です):

  1. OWASP ModSecurityはコアルールセットは、ボットは、(例えばそのUser-Agent文字列を偽造)ブラウザとして自分自身を偽装するための措置を講じている場合でも、自動化を検出するように設計ルールの数が含まれています。VPS、専用サーバーなどのサーバーを完全に制御している場合は、これらのルールをModSecurityで使用できます。

    このルールセットには、さまざまな不適切なアクティビティを停止するための他のルールも含まれています。あなたがそれを見ていないなら、あなたは間違いなくそうするべきです。

  2. サーバーを完全に制御していない場合(つまり、共有Webホスティングを使用している場合)、ホストで独自のModSecurityルールの使用が許可されていない場合は、アプリケーションレベルで、独自のBadなどを試すことができます。行動。私はこのプロジェクトを2005年に開始し、ブログのスパムや、ユーザーに関係するようなコンテンツスクレイパーと戦っています。PHPベースのWebサイトに追加できます。

    また、Bad Behaviorのルールの多くはModSecurityコアルールセットに組み込まれているため、これらのルールを有効にしておけば、両方を実行するのはかなり冗長になります。これらのルールは、不正な動作に起因するものとしてコアルールセットで注釈が付けられています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.