Предотвратить блокировку пользовательского веб-сканера - PullRequest
2 голосов
/ 04 октября 2011

Я создаю новый веб-сканер , использующий C# для сканирования определенных веб-сайтов. все идет хорошо но проблема в том, что некоторые веб-сайты блокируют IP-адрес моего сканера после некоторых запросов. Я пытался использовать временные метки между запросами на сканирование. но не сработало.

Можно ли как-нибудь запретить сайтам блокировать мой сканер? некоторые решения, подобные этому, помогут (но мне нужно знать, как их применять):

  • имитация бота Google или yahoo slurp
  • с использованием нескольких IP-адресов (поддельные IP-адреса событий) в качестве IP-адреса клиента искателя

любое решение поможет.

Ответы [ 2 ]

13 голосов
/ 04 октября 2011

Если скорость / пропускная способность не так важны, то, вероятно, лучшим решением будет установить Tor и Privoxy и направить ваш сканер через него.Тогда ваш сканер будет иметь случайно меняющийся IP-адрес.

Это очень эффективный метод, если вам нужно сканировать сайты, которые не хотят, чтобы вы сканировали их.Кроме того, он обеспечивает уровень защиты / анонимности, затрудняя отслеживание действий вашего сканера.

Конечно, если сайты блокируют ваш сканер, потому что он слишком быстрый, то, возможно, выследует просто немного ограничить скорость.

0 голосов
/ 08 января 2013

И вот как вы блокируете фейкеры (на тот случай, если кто-то нашел эту страницу при поиске, как их заблокировать)

Блокируйте этот трюк в apache:

# Block fake google when it's not coming from their IP range's 
# (A fake googlebot) [F] => Failure
RewriteCond %{HTTP:X-FORWARDED-FOR} !^66\.249\.(6[4-9]|[78][0-9]|9[0-5])\.
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/5\.0\ \(compatible;\ Googlebot/2\.[01];\ \+http://www\.google\.com/bot\.html\)$ [NC]
RewriteRule .* - [F,L]

Или блокируйте вnginx ради полноты

   map_hash_bucket_size  1024;
   map_hash_max_size     102400;

   map $http_user_agent $is_bot {
      default 0;
      ~(crawl|Googlebot|Slurp|spider|bingbot|tracker|click|parser|spider)$ 1;
   }

   geo $not_google {
      default     1;
      66.0.0.0/8  0;
   }

   map $http_user_agent $bots {
      default           0;
      ~(?i)googlebot       $not_google;
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...