110

検出されたくない Web クローラーを検出するためのオプションは何ですか?

(検出技術をリストアップすることで、スマート ステルス クローラー プログラマーがより優れたスパイダーを作成できるようになることはわかっていますが、スマート ステルス クローラーをいずれにせよブロックできるとは思いません。間違いを犯したものだけをブロックするだけです。)

googlebot や Yahoo! などの優れたクローラーについて話しているのではありません。啜る。次の場合、ボットは優れていると考えます。

  1. ユーザーエージェント文字列で自分自身をボットとして識別します
  2. robots.txt を読み取ります (そしてそれに従います)

一般的なユーザー エージェントの背後に隠れ、帯域幅を使用し、決して見返りを与えない悪質なクローラーについて話しているのです。

更新されたリストを作成できるトラップドアがいくつかあります(thanks Chris, gs) :

  1. robots.txt にリストされている (禁止としてマークされている) ディレクトリのみを追加します。
  2. 目に見えないリンクを追加する (rel="nofollow" とマークされている可能性がありますか?)、
    • スタイル="表示: なし;" リンクまたは親コンテナ上
    • より高い z-index を持つ別の要素の下に配置
  3. CapitaLiSaTioN を理解していない人を検出し、
  4. 返信を投稿しようとする人を検出しますが、常にキャプチャに失敗します。
  5. POST 専用リソースへの GET リクエストを検出する
  6. リクエスト間の間隔を検出する
  7. 要求されたページの順序を検出する
  8. 誰が (一貫して) http 経由で https リソースを要求しているかを検出する
  9. 画像ファイルを要求していない人を検出します (これを既知の画像対応ブラウザのユーザーエージェントのリストと組み合わせると、驚くほどうまく機能します)

一部のトラップは、「良い」ボットと「悪い」ボットの両方によってトリガーされます。それらをホワイトリストと組み合わせることができます:

  1. 罠を仕掛ける
  2. それは要求しrobots.txtますか?
  3. 従ったため、別のトラップをトリガーしませんrobots.txt

ここでもう 1 つ重要なことは
、視覚障害者がスクリーン リーダーを使用することを考慮してください。人々があなたに連絡する方法を提供するか、(画像以外の) キャプチャを解決してブラウジングを続けることです。

通常の人間の訪問者として自分自身を偽装しようとする Web クローラーを自動的に検出するには、どのような方法がありますか。

更新
問題は、すべてのクローラーをどのようにキャッチするかということではありません。問題は、クローラーを検出する可能性を最大化するにはどうすればよいかということです。

一部のスパイダーは非常に優れており、実際に html、xhtml、css、javascript、VB スクリプトなどを解析して理解
します。

ただし、一部のクローラーがどれほど愚かであるかに驚かれることでしょう。(私の意見では)愚かさの最も良い例は次のとおりです。すべての URL をリクエストする前に小文字にキャストします。

そして、さまざまなトラップドアを回避するには「十分ではない」クローラーがたくさんあります.

4

11 に答える 11

17

少し前に、小規模なホスティング会社と協力して、これに対するソリューションの実装を支援しました。私が開発したシステムは、特定の IP アドレスからの過剰なアクティビティについて Web サーバーのログを調べ、攻撃者をブロックするファイアウォール ルールを発行しました。これにはhttp://www.iplists.com/に基づく IP アドレス/範囲のホワイトリストが含まれており、要求されたユーザー エージェント文字列をチェックすることによって、必要に応じて自動的に更新されます。ホワイトリスト、DNS/リバース DNS ルックアップを実行して、送信元 IP アドレスがボットの主張された所有者に対応していることを確認しました。フェールセーフとして、これらのアクションは電子メールで管理者に報告され、評価が正しくない場合にアドレスをブラック/ホワイトリストに登録するためのリンクが付けられました。

そのクライアントとは 6 か月ほど話していませんが、最後に聞いたところによると、システムは非常に効果的に機能していました。

補足: ヒット率制限に基づいて同様の検出システムを実行することを検討している場合は、少なくとも 1 分 (できれば少なくとも 5 分) の合計を必ず使用してください。多くの人が、1 秒間に 5 ~ 10 件のヒットを記録した人をブロックしたいと考えているこの種のスキームについて話しているのを目にします。私のような人が興味深いサイトを見つけてすべてを読みたいと思うと、最初のサイトを読んでいる間にすべてのリンクをタブで開き、バックグラウンドでロードします。

于 2008-11-22T18:38:33.993 に答える
15

Project Honeypot を参照してください- 彼らは大規模なボット トラップを設定しています (そして IP に DNSRBL を持っています)。

扱いにくい URL と HTML を使用する:

<a href="//example.com/"> = http://example.com/ on http pages.
<a href="page&amp;&#x23;hash"> = page& + #hash

HTML では、コメント、CDATA 要素、エンティティなどで多くのトリックを使用できます。

<a href="foo<!--bar-->"> (comment should not be removed)
<script>var haha = '<a href="bot">'</script>
<script>// <!-- </script> <!--><a href="bot"> <!-->
于 2008-11-21T21:56:04.563 に答える
10

簡単な解決策は、リンクを作成して非表示にすることです

<a href="iamabot.script" style="display:none;">Don't click me!</a>

もちろん、ソース コードを見て、リンク先を確認するためだけにそのリンクをたどる人もいると考えてください。しかし、それらのユーザーにキャプチャを提示することはできます...

もちろん、有効なクローラーもリンクをたどります。ただし、rel=nofollow を実装するのではなく、有効なクローラーの兆候を探す必要があります。(ユーザーエージェントのように)

于 2008-10-24T13:32:16.560 に答える
7

あなたがリストしなかったものの1つは、悪いクローラーを検出するために一般的に使用されます。

ヒット速度、優れたWebクローラーはヒットを分割するため、リクエストでサイトを氾濫させることはありません。悪いものは3つのことのうちの1つをします:

  1. シーケンシャルリンクを次々にヒット
  2. いくつかの並列シーケンスでシーケンシャルリンクをヒットします(一度に2つ以上)。
  3. 一定の間隔でシーケンシャルリンクをヒット

また、一部のオフラインブラウジングプログラムは、IPアドレスによるブロックを開始するために、どの種類のしきい値を使用するかがわかりません。

このメソッドは、fmirrorやwgetなどのミラーリングプログラムもキャッチします。

ボットが時間間隔をランダム化する場合は、リンクがシーケンシャルまたは深さ優先の方法でトラバースされているかどうかを確認できます。または、ボットが大量のテキスト(読む言葉のように)をトラバースしているかどうかを確認できます。短すぎる期間。一部のサイトでは、1時間あたりのリクエスト数も制限されています。

実際、どこかでアイデアを聞いたのですが、ユーザーがキロバイト単位で取得するデータが多すぎると、ボットではないことを証明するように求めるキャプチャが表示される可能性があるという考えをどこかで聞きました。しかし、それが実装されているのを見たことがありません。

リンクの非表示に関する更新

リンクを非表示にする限り、CSS(描画順序の最初に配置)を使用してdivを別のdivの下に配置し、場合によってはz順序を設定できます。ボットは、すべてのJavaScriptを解析して、それがメニューであるかどうかを確認しない限り、それを無視することはできませんでした。ある程度、ボットがすべてのjavascriptを解析しない限り、非表示のDIV要素内のリンクも無視できません。

そのアイデアを完成させると、隠された要素を表示する可能性のある呼び出されていないjavascriptは、javascript解析ボットのサブセットをだます可能性があります。そして、実装するのはそれほど多くの作業ではありません。

于 2008-10-24T13:08:06.440 に答える
4

私がフォームについて聞いた簡単なボット検出方法の1つは、隠し入力手法です。フォームを保護しようとしている場合は、完全に正当に見えるIDを使用してフォームに入力を入力してください。次に、外部ファイルでcssを使用して非表示にします。または、本当にパラノイアの場合は、jqueryのようなものを設定して、ページの読み込み時に入力ボックスを非表示にします。これを正しく行うと、ボットが理解するのは非常に難しいと思います。特に、非表示の入力にid = "fname"などのIDを指定した場合、これらのボットにはページ上のすべてに入力する性質があることをご存知でしょう。

于 2009-04-07T20:04:24.000 に答える
4

優れたユーザー エージェント文字列についていくのは、実際にはそれほど簡単ではありません。ブラウザのバージョンは行き来します。ユーザー エージェントの文字列をさまざまな動作別に統計すると、興味深いことがわかります。

これがどこまで自動化できるかはわかりませんが、少なくとも 1 つの差別化要素です。

于 2008-10-24T14:58:41.893 に答える
3

テストされていませんが、正規表現を作成できるユーザー エージェントの優れたリストを次に示します。ほとんどの場合、次の方法でアクセスできます。

ADSARobot|ah-ha|almaden|aktuelles|Anarchie|amzn_assoc|ASPSeek|ASSORT|ATHENS|Atomz|attach|attache|autoemailspider|BackWeb|Bandit|BatchFTP|bdfetch|big.brother|BlackWidow|bmclient|Boston\ Project|BravoBrian\ SpiderEngine\ MarcoPolo|Bot\ mailto:craftbot@yahoo.com|Buddy|Bullseye|bumblebee|capture|CherryPicker|ChinaClaw|CICC|clipping|Collector|Copier|Crescent|Crescent\ Internet\ ToolPak|Custo|cyberalert|DA$|Deweb|diagem|Digger|Digimarc|DIIbot|DISCo|DISCo\ Pump|DISCoFinder|Download\ Demon|Download\ Wonder|Downloader|Drip|DSurf15a|DTS.Agent|EasyDL|eCatch|ecollector|efp@gmx\.net|Email\ Extractor|EirGrabber|email|EmailCollector|EmailSiphon|EmailWolf|Express\ WebPictures|ExtractorPro|EyeNetIE|FavOrg|fastlwspider|Favorites\ Sweeper|Fetch|FEZhead|FileHound|FlashGet\ WebWasher|FlickBot|fluffy|FrontPage|GalaxyBot|Generic|Getleft|GetRight|GetSmart|GetWeb!|GetWebPage|gigabaz|Girafabot|Go\!Zilla|Go!Zilla|Go-Ahead-Got-It|GornKer|gotit|Grabber|GrabNet|Grafula|Green\ Research|grub-client|Harvest|hhjhj@yahoo|hloader|HMView|HomePageSearch|http\ generic|HTTrack|httpdown|httrack|ia_archiver|IBM_Planetwide|Image\ Stripper|Image\ Sucker|imagefetch|IncyWincy|Indy*Library|Indy\ Library|informant|Ingelin|InterGET|Internet\ Ninja|InternetLinkagent|Internet\ Ninja|InternetSeer\.com|Iria|Irvine|JBH*agent|JetCar|JOC|JOC\ Web\ Spider|JustView|KWebGet|Lachesis|larbin|LeechFTP|LexiBot|lftp|libwww|likse|Link|Link*Sleuth|LINKS\ ARoMATIZED|LinkWalker|LWP|lwp-trivial|Mag-Net|Magnet|Mac\ Finder|Mag-Net|Mass\ Downloader|MCspider|Memo|Microsoft.URL|MIDown\ tool|Mirror|Missigua\ Locator|Mister\ PiX|MMMtoCrawl\/UrlDispatcherLLL|^Mozilla$|Mozilla.*Indy|Mozilla.*NEWT|Mozilla*MSIECrawler|MS\ FrontPage*|MSFrontPage|MSIECrawler|MSProxy|multithreaddb|nationaldirectory|Navroad|NearSite|NetAnts|NetCarta|NetMechanic|netprospector|NetResearchServer|NetSpider|Net\ Vampire|NetZIP|NetZip\ Downloader|NetZippy|NEWT|NICErsPRO|Ninja|NPBot|Octopus|Offline\ Explorer|Offline\ Navigator|OpaL|Openfind|OpenTextSiteCrawler|OrangeBot|PageGrabber|Papa\ Foto|PackRat|pavuk|pcBrowser|PersonaPilot|Ping|PingALink|Pockey|Proxy|psbot|PSurf|puf|Pump|PushSite|QRVA|RealDownload|Reaper|Recorder|ReGet|replacer|RepoMonkey|Robozilla|Rover|RPT-HTTPClient|Rsync|Scooter|SearchExpress|searchhippo|searchterms\.it|Second\ Street\ Research|Seeker|Shai|Siphon|sitecheck|sitecheck.internetseer.com|SiteSnagger|SlySearch|SmartDownload|snagger|Snake|SpaceBison|Spegla|SpiderBot|sproose|SqWorm|Stripper|Sucker|SuperBot|SuperHTTP|Surfbot|SurfWalker|Szukacz|tAkeOut|tarspider|Teleport\ Pro|Templeton|TrueRobot|TV33_Mercator|UIowaCrawler|UtilMind|URLSpiderPro|URL_Spider_Pro|Vacuum|vagabondo|vayala|visibilitygap|VoidEYE|vspider|Web\ Downloader|w3mir|Web\ Data\ Extractor|Web\ Image\ Collector|Web\ Sucker|Wweb|WebAuto|WebBandit|web\.by\.mail|Webclipping|webcollage|webcollector|WebCopier|webcraft@bea|webdevil|webdownloader|Webdup|WebEMailExtrac|WebFetch|WebGo\ IS|WebHook|Webinator|WebLeacher|WEBMASTERS|WebMiner|WebMirror|webmole|WebReaper|WebSauger|Website|Website\ eXtractor|Website\ Quester|WebSnake|Webster|WebStripper|websucker|webvac|webwalk|webweasel|WebWhacker|WebZIP|Wget|Whacker|whizbang|WhosTalking|Widow|WISEbot|WWWOFFLE|x-Tractor|^Xaldon\ WebSpider|WUMPUS|Xenu|XGET|Zeus.*Webster|Zeus [NC]

出典: http://perishablepress.com/press/2007/10/15/ultimate-htaccess-blacklist-2-compressed-version/

于 2010-06-25T21:21:12.963 に答える
1

紹介を確認することもできます。紹介によってボットの疑いが生じることはありません。悪い紹介は確かにそれがブラウザではないことを意味します。

非表示のリンクを追加する(おそらくrel = "nofollow"?としてマークされている)、

* style="display: none;" on link or parent container
* placed underneath another element with higher z-index

私はそれをしません。あなたはブラックハットSEOのためにグーグルによってブラックリストに載せられることになるかもしれません:)

于 2011-02-03T13:31:33.433 に答える
1

私は現在、Web サイトを分類するために Web サイトをスキャンする会社で働いています。また、マルウェアについてサイトをチェックします。

私の経験では、私たちの Web クローラー (もちろん IE または Firefox UA を使用し、robots.txt には従わない) の最大のブロッカーは、意図的にマルウェアをホストしているサイトです。サイトは手動でサイトをロードし、分類し、マルウェアをチェックしなければならない人間にフォールバックするため、面倒です.

私が言っているのは、Web クローラーをブロックすることで、自分を悪い仲間に入れているということです。

もちろん、彼らが恐ろしく無礼で、あなたの帯域幅を大量に吸い取るなら、それは別の話です。

于 2010-06-25T21:52:49.040 に答える