web-dev-qa-db-ja.com

Yandexボットをブロックする必要がありますか?

Yandexスパイダーがバックエンドへのアクセスを数回試行しているWebアプリケーションがあります。これらのスパイダー検索の後、バックエンドにもアクセスしようとするロシアのIPアドレスはほとんどなく、アクセスに失敗しました。

Yandexをブロックするか、別のアクションを実行する必要がありますか?

更新:

Yandexスパイダーは、2〜3日ごとに1回、バックエンドURLにアクセスします。フロントエンドではバックエンドURLをリリースしていません。

"back-end"の意味:管理者がアプリケーションを管理できるようにするWebアプリケーションのインターフェイス

31
user2352577L

Yandexをブロックする必要があります

どうして?
最初に、ボットが正当な検索エンジンボットである場合(それ以外は何もない)、ハッキングされることはありません。そうでない場合は、ユーザーエージェントをブロックしても効果がありません。別のエージェントを使用するだけです。
パスワードが適切で、fail2banが設定されている、ソフトウェアが最新であるなどの場合は、試してみてください。そうでない場合は、Yandexボットとは関係なく、修正する必要があります。

問題が実際にYandexであることを確認するには、robots.txtで問題を禁止してみて、停止するかどうかを確認します。
いいえ=> Yandexではありません。

(数週間前に新しいウェブサーバーをセットアップしました。オンラインになってから1時間後、まだドメインさえなかったため、「Googlebot」は存在しないWordpressに対してSQLインジェクションを試み始めました。他に何もなかったので、見ていて楽しかったです。 HTTPリクエストですが、そのためGoogleをブロックしませんでした。)

78
deviantfan

@deviantfanの answer に同意し、特にこの点に同意する

まず、ボットが正当な検索エンジンボットである場合(そして他に何もない場合)、ハッキングされることはありません。そうでない場合は、ユーザーエージェントをブロックしても効果がありません。別のエージェントを使用するだけです。

Yandexおよび一般的な他の検索エンジンボットは意図的にバックエンドにアクセスすることを望まない可能性があることを指摘しておきます。ボットがリンクをたどってサイトをクロールしていることを覚えておいてください。悪意のあるユーザーがバックエンドのURLを他のWebサイトのページに入れ、検索エンジンがそれらのページにインデックスを付け、そこからリンクをたどろうとしていると想像してください。したがって、検索エンジンがバックエンドにアクセスしようとしているように見えますが、ネットをクロールしているだけで、バックエンドであることを認識していません。

同様のことが偶然に起こるかもしれません。技術に詳しくないユーザーが、フォーラムにURLを投稿したとします。これは、ログインしている場合にのみアクセスできます。検索エンジンをクロールすると、これらのリンクをたどろうとするため、ログが表示されることになります。

UPDATE:robots.txtルールに設定して、yandexが特定のURLにアクセスできないようにすることをお勧めします。ところで、その名前で特定のルールを定義する方がいいです。よくわかりませんが、yandexbotがUser-agent: *なので、このようなsmthを実行できます(バックエンドURLに応じて)

User-agent: Yandex
Disallow: /admin/*

したがって、このようにして、バックエンドURLへのアクセスを拒否します-そのパターンに一致しますが、同時に、それ(yandexbot)は、Webサイトの別のページを自由にクロールできます。

9
dav

正当なYandexボットをブロックするべきではありませんが、それが実際に正当なボットであり、Yandex User-Agentを使用しているだけの誰かではないことを確認できます。

差出人: https://yandex.com/support/webmaster/robot-workings/check-yandex-robots.xml

  • サーバーログを使用して、問題のユーザーエージェントのIPアドレスを確認します。すべてのYandexロボットは、設定されたユーザーエージェントによって表されます。
  • 受信したIPアドレスのDNS逆引き参照を使用して、ホストドメイン名を決定します。
  • ホスト名を決定したら、それがYandexに属しているかどうかを確認できます。すべてのYandexロボットの名前は、「yandex.ru」、「yandex.net」、または「yandex.com」で終わります。ホスト名の末尾が異なる場合、ロボットはYandexに属していません。
  • 最後に、名前が正しいことを確認してください。フォワードDNSルックアップを使用して、ホスト名に対応するIPアドレスを取得します。 DNS逆引き参照で使用されるIPアドレスと一致する必要があります。 IPアドレスが一致しない場合は、ホスト名が偽造されていることを意味します。

実際、ほとんどすべての大きな検索エンジンは、User-Agentを検証する同様の方法を提供しています。これが機能する方法は、誰かが逆DNSルックアップをスプーフィングできるが、そのスプーフィングされたアドレスのフォワードDNSはスプーフィングできないためです。

3
ontrack

@deviantfanからの回答に同意しますが、最初の質問は地獄へのルートのように聞こえるので、数年前に誰かがダウンしたのを見ました-単に言うのではなく完全にクモをブロックしようとしてもrobots.txt(おそらく、とにかく管理パーツに対して実行する必要があります)を介してなくなると、勝つことができないワッカモレの終わりのないゲームになります。

数年前、私が読んだ別のサイトの誰かが、Google/Microsoft/Yandex/etcがすべて彼のWebサイトを「DDOS」していることについて怒鳴っていました。どうやらこのサイトは「非公開であり、彼の友人のほんの数人だけがアクセスでき、どの検索エンジンにも表示されるべきではない」と思われた。しかし、明らかにそのユーザーの少なくとも1人が、さまざまなWebスパイダーが見つけた内部の場所へのリンクを投稿していました。 (DNSレコードからwww.whatever.tldについて知っているだけではありません。)

それを実行している人は、robots.txtファイルがあり、そのファイルへのリンクを見つけたスパイダーがファイルを読み取って去ってしまうことは許されないと判断しました。彼らは彼のサイトを永久に無視し、いかなる状況下でも二度と触れないようにする必要がありました。 (彼がこれが唯一の受け入れ可能なオプションである理由の合理的な説明を決して与えませんでした。明らかに、スパイダーが見つけた彼のサイトの内部ロケーションへのリンクを投稿している人、またはボットがただ捨てられるように認証だけを要求している人について何かをしていたようにコンテンツ無料のログインページ。)

代わりに、すべてのWebスパイダーIPをブラックリストに登録し始めたため、リクエストの試行が応答なしでタイムアウトしました。一度それを行うと、robots.txtファイルを取得して一定時間離れる単一のリンクをたどる代わりに、スパイダーはエラーが発生して多数の異なるIPからサイトにアクセスし始めたときに再試行間隔がはるかに短くなることを発見しました(おそらく、スパイダーが想定したものを迂回しようとしたのはネットワークエラーでした)。

これは彼のIPブラックリストが数千のアドレスに爆発し、検索エンジンによってDDOSされていることについて怒り始めたポイントです。悲しいことに、その人はその時点で頭がおかしくなり、実際の問題に実際に対処しようとする試みはすべて、彼が正しいと確信したものではなく拒否しました。