web-dev-qa-db-ja.com

ロボットがサイト/記事のコンテンツを取得しないようにする

これはインデクサーについての質問ではありません。それらのほとんどはrobots.txtファイルに従います。

しかし、多分あなたはFacebookまたはSkypeが投稿したURLが投稿した公開されたケースに気づいたかもしれませんユーザーまたはこれらのプラットフォームを使用してプライベートインスタントメッセージ経由で送信されたユーザー。私はこれら2つがこれをしているだけではない(またはすぐになくなる)と思います。

問題は、特定のURLへのアクセスが必ずしもrobots.txtに従う必要はなく、表示されたテキストの「バックアップ」を実行する可能性があることです。私は非常に標準的なサイト(非営利組織、趣味、ブログ)を管理していますが、この「究極のマーケティングツール」は好きではありません(これが最も優れた前提でした)。したがって、私はこれらのサイトがリンクを取得した後にこれらのサイトから来るそのようなスニッフィング/クロールを回避するエレガントな方法を考えています。何かのようなもの

  • 人間によるテストに合格するまでページ全体が表示されません(Cookieが設定されるため、これはもう必要ありません)– OR –

  • サイトにはアクセスできます(すべてのモジュールが含まれるページが存在するなど、記事のタイトルに問題はありません)が、メインの記事のコンテンツ(com_content)は最初は空で、 Ajax を使用して自動置換されます

これらのクローラーがサイトのURLのコンテンツを取得しないように、これらのクローラーに対する防止策を実装する方法について何かアイデアはありますか?

5
miroxlav

ボットの動作は異なるため、簡単な解決策はありません。私はそれらを4つのカテゴリーとそれぞれの解決策に分けます:

  1. 正当なクローラー(Googleなど)-これらは通常robots.txtを尊重し、あなたが言ったように、あなたはそれに興味がありません。

  2. 正当なスクラップ業者(Facebookなど)-通常、これらには適切なユーザーエージェントが含まれているため、それに基づいてこれらをブロックできます(ユーザーエージェント)。

  3. Robots.txtを尊重しないクローラー-最も簡単な方法は、ページに非表示のリンク(人間用)を作成し、そのリンクにrel = nofollow(正当なクローラーに問題がないようにする)を設定することです。リンクは、クローラーのIP、UAおよび同様のものを記録するページに移動する必要があります。次に、そのログに対するチェックを実装できます。一致がある場合は、コンテンツを無視するだけです。

  4. スクレイパーの1つ-Facebookに似ていますが、偽のユーザーエージェントが含まれています。唯一の実行可能な解決策はCookieのサポートを確認することですが、それが機能することを100%保証するものではありません。また、Cookieを無効にしているユーザーもブロックされます。

3
Ivo

1つの方法は、クローラーからのアクセスをブロックすることですが、これはアクセスを識別できるかどうかに依存します。

次の記事には、Joomlaのセキュリティを強化する方法の良い例がいくつかあります。

http://docs.joomla.org/Htaccess_examples_%28security%29

1つの方法は、HTTP_REFERER属性を使用して、画像がサイトのページからロードされない限り、たとえば画像へのアクセスをブロックすることです。

もう1つは、HTTP_USER_AGENT属性を使用して、特定のエンジンへのアクセスをブロックすることです。

追加のHTTP_USER_AGENT文字列を特定するには、アクセスログを検査する必要があります。または、ある場合にリダイレクト拡張を変更して、コメントにHTTP_USER_AGENTを追加しました。

3
Peter Wiseman

コンテンツをパブリックにアクセス可能にしたくない場合は、JoomlaのACLを使用してアクセスを制限し、デフォルト(パブリック)ユーザーグループのアクセスを削除します。それを行わない場合、または同様の場合、コンテンツはpublicであり、人々はそれを見ることができ、ボットはそれを見ることができます。

あなたのコンテンツを誰にも見られたくない場合は、それを世界に公開しないでください。あなたがそれを世界に公開するなら、誰がそれを見るかについて多くの発言権を持つことはできません。

3
Seth Warburton