規制上の理由で、自動的にインデックス化または検索されないサイトがあります。これは、すべてのロボットを遠ざけ、それらがサイトをスパイダーしないようにする必要があることを意味します。
明らかに、最初から許可されていないrobots.txtファイルがあります。ただし、robots.txtファイルを監視することは、正常に動作するロボットだけが行うことです。最近、振る舞いの悪いロボットにいくつかの問題がありました。 Apacheを いくつかのユーザーエージェントを禁止 に設定しましたが、それを回避するのは非常に簡単です。
質問は、Apacheを構成して(おそらくモジュールをインストールすることで)ロボットのような動作を検出して応答する方法はありますか?他のアイデアはありますか?
現時点では、ログの手動検査に基づいてIPアドレスを禁止することしかできません。これは単に実行可能な長期戦略ではありません。
隠されたページにリンクできます。このページにアクセスすると、ボットのユーザーエージェントとIPアドレスがキャプチャされ、それらの1つまたは両方が.htaccessファイルに追加されて、永久にブロックされます。自動化されているため、メンテナンスするために何もする必要はありません。
Project Honeypot のIPとインターフェースをとる Apacheモジュール を使用して、他の人が悪いIPを特定するために行った作業に便乗できますブラックリスト。これを大規模に行っている場合、ハニーポットの実行を申し出るのはおそらく礼儀正しいでしょう。
Gisle Hannemyr コメントで言及 であるため、これを行う最良の方法は、すべてのユーザーのログインを要求し、ログインしていない人には制限されたコンテンツを提供しないことです。
何らかの理由でログインを要求できない場合でも、使用できるフォールバックがいくつかあります(免責事項:両方とも部分的または完全に私のせいです):
OWASP ModSecurity Core Rule Set には、ボットが自分自身をブラウザに偽装する手順を実行した場合(たとえば、User-Agent文字列を偽装した場合)に自動化を検出するように設計された多数のルールが含まれています。 VPS、専用サーバー、またはそれより大きいサーバーなど、サーバーを完全に制御している場合は、これらのルールを ModSecurity で使用できます。
このルールセットには、さまざまな不適切なアクティビティを停止するための他のルールも含まれています。あなたがそれを見なかったなら、あなたは間違いなくそうすべきです。
サーバーを完全に制御できない場合(つまり、共有Webホスティングを使用している場合)、ホストで独自のModSecurityルールの使用が許可されていない場合は、アプリケーションレベルで何かを試すことができます。 悪い動作 。私はこのプロジェクトを2005年に開始し、ブログスパムや、あなたに関係するようなコンテンツスクレイパーと戦いました。 PHPベースのWebサイトに追加できます。
また、Bad Behaviorのルールの多くがModSecurityコアルールセットに組み込まれていることにも注意してください。これらのルールを有効にしている限り、両方の実行はかなり冗長になります。これらのルールは、不正な動作に起因するものとしてコアルールセットに注釈が付けられています。