|
| Дата |
|
USD/RUB | 88.4375 | BTC/USD | 67828.5337 |
|
|
|
Хостинг и железо Обсуждаем вопросы хостинга и железа. |
25.07.2014, 00:52
|
Start Post: Защита сервера от ботов
|
автоматизирую интернеты
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,350
Бабло: $470735
|
люблю следить за чужими ботами в логах своих веб-серверов. Порой проскакивают интересные экземпляры и "темы". Но большинство ботов являются нежданными гостями, а порой и опасны для сайта или сервера. Далее я хочу поделиться своими мыслями на эту тему.
Тыкаем на смайлы moreinfo
Опасности ботов:
1) бот создает нагрузку на сервер, расходуя его ресурсы и, как следствие, сайт/сервер тормозит. (например: все ж "любят" китайского бота от baidu.com, который ставит раком любой сервер, вне зависимости от директив в robots.txt. Его обычно банят первым делом)
2) угроза безопасности - некоторые боты ищут уязвимости на сайтах и, если найдут, хакер поимеет ваш сайт или сервер, а это печально
3) происки конкурентов и другой сбор информации о ваших проектах третьими лицами, например, hrefs/мажестик/etc. Если конкуренты узнают ваши секреты продвижения проекта, они могу получить преимущество.
4) схожие с предыдущим пунктом боты различных правовых организаций, которые выступают за чистоту контента и соблюдения интернет-законов, т.е. копирайт боты, анти-фарма боты, анти-плагиат и тд. Эти боты могут писать письма вашим хостерам и вам по поводу и без повода, создавая лишние неудобства
Согласно моей статистике, хороших ботов, от которых есть польза, гораздо меньше, чем плохих.
Хорошие: боты поисковых компаний(google, yandex, bing) или тех систем, которые осознанно использованы непосредственно в проекте. Например, пробую использовать партнерку от viglink, от них на каждую страницу сайта приходит бот-анализатор...ну пусть ходит, раз так надо. Тоже самое с share-кнопками от addthis.com и тд. Хотя бы я в курсе кто это такие.
Также к хорошим ботам можно отнести те, которые сами ставят dofollow линки на ваш сайт. Если бот ставит ссылки на все сайты подряд без разбору, то по заявлениям гугла, такие ссылки не учитываются в ранжировании, хоть они и dofollow.
Раз хороших ботов меньше, чем плохих, то при их фильтрации логичнее применить "политику белых списков", т.е. блокируем ВСЕХ ботов, кроме хороших из белого списка. Если заранее не знаем этот список, то его сначала надо собрать или взять у коллег.
Если существует риск заблокировать очень нужного бота, который еще не успел попасть в белый список, или если трудно решиться на тотальную блокировку, можно использовать "политику черных списков", т.е. разрешать ВСЕХ ботов, кроме плохих.
У меня пока используется второй вариант, но планирую переход к первому, т.к. статистика показала, что полезных ботов на несколько порядков меньше.
Определение термина "бот"
Кто такой бот? Если есть бот, значит есть небот? и как их различать?
Эти вопросы очень интересные и чем дальше прогресс, тем провести границу между ними сложнее.
Классификация трафика на бот/не_бот прежде всего имеет _цель_, согласно которой формируются признаки или образ "бота" (и небота). Если уходить в науку, то это задача распознавания образов, которая универсально решается методами Machine Learning. Но такие универсальные решения сложны и не всегда оправданы. Возможно, их используют какие-то сложные системы анализа трафика, типа гугл-аналитикс или адвордс. В ситуации с мелкими сайтиками/проектами проще применить эвристические алгоритмы, проверенные опытным путем и работающие в боевых условиях. Но цель фильтрации и образ бота все равно придется "рисовать".
Признаки бота
Признак - это набор фактов, или набор значений параметров исследуемого веб-клиента, по которым его можно классифицировать на бот/небот.
Я разделяю признаки на:
1) статические, или лучше называть state-признаки, т.е. набор фактов о клиенте без учета времени, без учета его прошлого, _состояние_ веб-клиента здесь и сейчас. Грубо говоря, это набор значений параметров, которые указаны в одной строке лога веб-сервера (nginx/apache). Например:
Цитата:
5.135.18.89 - - [12/Jun/2013:06:15:55 +0400] "GET /phpmyadmin/ HTTP/1.1" 200 13820 "-" "Googlebot/2.1 (+http://www.googlebot.com/bot.html)" "-"
|
часто достаточно одной такой строки, чтобы сделать вывод о том, что это бот. Например, когда об этом явно написано: "Googlebot/2.1....." (но не всегда, см. дальше)
2) динамические, которые учитывают серии запросов клиента, разделенных во времени, а также запросы других "соседних" веб-клиентов. Например, если веб-клиент по state-признакам классифицировался как небот, но он долбит сервер с частотой 100 запросов в секунду, то скорее всего он бот и простой классификатор ошибся. (Эта часть анализа бот/небот сложна и интересна и можно обсудить потом подробнее. Дальше пишу про первый пункт.)
Боты, путешествующие по сайтам, являются http-клиентами, т.е. речь идет именно о http(s)-протоколе, а раз так, то и факты о боте лежат в источнике (хост, IP-адрес) http-запроса и в его http-заголовке, которым он представляется каждый раз, стучась к нам на сервер. Рассматривая источник запроса и его возможные http-заголовки, можно выделить следующие параметры, из которых формируются state-признаки ботов:
- IP клиента
- http user agent
- http request uri
- http referer
- http cookie
- и другие
Это основные и их достаточно, чтобы обрубить 99% бот-трафика.
Степень наглости ботов.
Наглость №1. Чтобы боты не ходили по сайту и не грузили сервер, веб-программисты придумал файл robots.txt. Если там прописать UA бота, то он должен повиноваться и не ходить по сайту. По моим наблюдениям даже гугл нарушает эти правила, а самые наглые боты вообще чихать хотели на этот файл.
Наглость №2. Некоторые боты явно пишут: "я бот, парсящий сайт с целью набрать емейлов для спама", другие: "я хороший бот, не надо меня банить", третьи: "я не бот, я обычный юзер с файерфоксом", а четвертые и самые наглые: "я гугл, не баньте меня". Если присмотреться к примеру лог-строки выше, там с большой вероятностью не гугл, а "левый" бот, работающий от имени гугла. С такими тоже можно бороться.
Политика и цели филтрации бот-трафика
Перед тем, как начать фильтровать трафик, лучше определиться каких веб-клиентов считать за ботов, каких ботов пропускать на сервер, а каких блокировать.
Я пропускаю всех, кроме тех, кто по признакам похож на плохого бота, т.е. "политика черных списков". Плохие боты - те, от которых нет пользы для моих сайтов на мой субъективный взгляд. Например, теоретически, от ahrefs, мажестиков и других подобных ботов есть плюс при открытой оценки сайта, которая может помочь при продаже сайта, где-то будет написано, что мой сайт стоит не $10, а $10000 и другие подобные случаи...но мне такое не надо.
Маршрут ботов и компоненты их анализа
Путь следования запроса от клиента к серверу и обратно:
(1) клиент-хост -> (сквозь каналы и коммутаторы, сетевой уровень) -> (2) сетевой интерфейс сервера (транспортный уровень, tcp/ip) -> (3) ядро ОС (с участием firewall) -> (прикладной уровень, http) -> (4) фронтэнд веб-сервера -> (прикладной уровень, например fastcgi) -> (5) бекэнд веб-сервера -> (fastcgi) -> (6) фронтэнд веб-сервера -> (7) ядро ОС -> (8) сетевой интерфейс -> (9) клиент-хост
В точке (5) "бекэнд веб-сервера" обычно жарче всего. При хайлоад-оптимизациях, стараются минимизировать ее участие при общении с веб-клиентом. А при защите от ботов стараются допускать до сюда только тех, кому оно действительно надо: юзеры, использующие динамические части сайта и сверх-умные боты, которых лучше не обманывать, например, гуглобота можно пускать. Менее хорошим и более тупым ботам достаточно показать кеш из точки (4).
Все вопросы классификации трафика на бот/небот лучше решать в как можно более ранних точках:
(1) хост веб-клиента. Бан хоста будет хорошим решением, если вас долбит один и тот же бот или подсеть, пишите на них абузу, может и выйдет что-то
(2) на сетевом уровне обычно работают железячные анти-ддос защиты и прочее оборудование, недоступное рядовому сервер-арендателю. К тому же, этому оборудованию нужно передать политику классификации на бот/небот, иначе оно не узнает какие боты хорошие, какие плохие. При умной и тонкой фильтрации имхо такие способы не доступны, зато для анти-ддос самое то.
(3) точка приема трафика на сервер и обработка его ОСью. До этого уровня мы (админы) дотянуться можем - можем блокировать прохождение трафика дальше этой точки, т.е. обрубать поток, но для классификации на бот/небот нам доступен только IP, т.к. это транспортный уровень и HTTP-протокол еще не вступил в действие, мы не знаем http-хедеров, т.е. неизвестны ua, referer, request uri и тд. Если есть заранее подготовленные белые/черные списки IP, то в этом месте можно их применить. Один из вариантов фильтрации трафика - заранее готовить и постоянно обновлять эти списки.
(4) на веб-фронтэнде уже известно о веб-клиенте все, что нужно, осталось проанализировать значения параметров и соотнести их со state-признаками и классифицировать на бот/небот. Обычно, этот анализ происходит внутри конфига веб-фронтэнда, пропускать его в следующую точку (5) на бекэнд крайне не желательно, но при сложном бот-анализе можно. Самый просто пример анализа параметра Http User Agent: ищем с помощью regexp стоп слова: php, perl, python, baidu, ahrefs, ezooms, checkparams etc - если нашли, значит это плохой бот.
Можно в точках (4) и (5) подготовить черный список ip, принадлежащих плохим ботам, и отправить его на уровень (3) в файервол, который будет блокировать все последующие запросы с этих IP. Придется постоянно следить за базой IP, желательно автоматически и в реальном времени.
Отступление про апач. Апач - это бекэнд и фронтэнд в одном флаконе. К его работе в качестве бекенда претензий особо нет, зато к фронтэнду есть. Фронтэнд настраивают с помощью .htaccess-файлов - это файлы динамического конфига. Динамический конфиг якобы удобнее(что очень спорно) и всегда менее эффективнее статического конфига. Причина - постоянно работает интерпретатор, который обязан в режиме реального времени следить за состоянием htaccess-ов и реагировать на их изменения. Использование .htaccess - это много-кратное зло, которое рекурсивно применяется по всему дереву директорий виртуального хоста. Также апачевские коннекты тяжелее по памяти, чем те же самые коннекты в nginx (сам не проверял). Рекомендую в качестве фронтэнда веб-сервера использовать nginx.
Что делать с обнаруженным ботом?
Если мы знаем, что пришедший клиент является ботом - куда его девать?
Варианты:
1) молча закрыть соединение и пусть думает, что хочет
2) показать ему картинку или надпись в виде или любой другой http-ответ: пустой или с контентом
3) частный случай предыдущего пункта: отправить 301-редирект на адрес http://google.com , пусть попарсит гугл.
Для сайтов использую только 1-ый вариант, маршрут следования бота обрубается в точке (3) или (4), т.о. не тратятся ресурсы на подготовку http-ответа и сам ответ.
2/3 варианты интересны в случае фильтрации трафика под клоакинг, либо при организации TDS. После анализа веб-клиенту отдается тот контент, который ему полагается согласно классификации. Например: гуглоботам - красивый и правильный сайт/html, юзерам - редирект на партнерку, левым ботам - бан сразу.
Профит от фильтрации ботов
1) если на сервере 90% трафика составляют боты (имхо такое вполне реально), то зафильтровав их, на сервере снизится нагрузка в 10 раз, а значит вместо 10 серверов, можно купить только один, а значит вместо $1000 заплатить $100 - профит!
2) сокращение ботов сокращает количество внешних проблем (спам, абузы, конкуренты, взлом)
3) фильтрация трафика - это интересно, хочу знать "в лицо" своих клиентов, а то устроили проходной двор в этих Интернетах
далее еще будет практическая часть.....
|
|
|
25.07.2014, 23:09
|
#12
|
Strannic.org
Регистрация: 15.12.2010
Сообщений: 2,028
Бабло: $508160
|
Отличная статья!
Может кому пригодится еще списочек ботов приложу
PHP код:
RewriteCond %{HTTP_USER_AGENT} ^[Ww]eb[Bb]andit [OR]
RewriteCond %{HTTP_USER_AGENT} ^1-More\ Scanner [OR]
RewriteCond %{HTTP_USER_AGENT} ^192.comAgent [OR]
RewriteCond %{HTTP_USER_AGENT} ^Accelerator [OR]
RewriteCond %{HTTP_USER_AGENT} ^Accoona [OR]
RewriteCond %{HTTP_USER_AGENT} ^Alexibot [OR]
RewriteCond %{HTTP_USER_AGENT} ^almaden.ibm.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^Ants [OR]
RewriteCond %{HTTP_USER_AGENT} ^Aport [OR]
RewriteCond %{HTTP_USER_AGENT} ^AppleWebKit [OR]
RewriteCond %{HTTP_USER_AGENT} ^archive.org [OR]
RewriteCond %{HTTP_USER_AGENT} ^Ask\ Jeeves [OR]
RewriteCond %{HTTP_USER_AGENT} ^asterias [OR]
RewriteCond %{HTTP_USER_AGENT} ^attach [OR]
RewriteCond %{HTTP_USER_AGENT} ^BabalooSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^BackDoorBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^BackWeb [OR]
RewriteCond %{HTTP_USER_AGENT} ^Badex-Bot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Baiduspider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bandit [OR]
RewriteCond %{HTTP_USER_AGENT} ^BecomeBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^BilgiBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^BilgiFeedBot/experimental [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bingbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Birubot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Black.Hole [OR]
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^BlowFish [OR]
RewriteCond %{HTTP_USER_AGENT} ^BotALot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Brontok.A\ Browser [OR]
RewriteCond %{HTTP_USER_AGENT} ^Buddy [OR]
RewriteCond %{HTTP_USER_AGENT} ^BuiltBotTough [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bullseye [OR]
RewriteCond %{HTTP_USER_AGENT} ^BunnySlippers [OR]
RewriteCond %{HTTP_USER_AGENT} ^Butterfly [OR]
RewriteCond %{HTTP_USER_AGENT} ^CamontSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^CazoodleBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Cegbfeieh [OR]
RewriteCond %{HTTP_USER_AGENT} ^CFNetwork [OR]
RewriteCond %{HTTP_USER_AGENT} ^CheeseBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^CherryPicker [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^ConveraCrawler [OR]
RewriteCond %{HTTP_USER_AGENT} ^Copier [OR]
RewriteCond %{HTTP_USER_AGENT} ^CopyRightCheck [OR]
RewriteCond %{HTTP_USER_AGENT} ^cosmos [OR]
RewriteCond %{HTTP_USER_AGENT} ^Crescent [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Dead\ Link\ Checker [OR]
RewriteCond %{HTTP_USER_AGENT} ^DepSpid [OR]
RewriteCond %{HTTP_USER_AGENT} ^DIIbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DittoSpyder [OR]
RewriteCond %{HTTP_USER_AGENT} ^Dolphin [OR]
RewriteCond %{HTTP_USER_AGENT} ^DotBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^dotnetdotcom [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Master [OR]
RewriteCond %{HTTP_USER_AGENT} ^Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^Drip [OR]
RewriteCond %{HTTP_USER_AGENT} ^e-SocietyRobot [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailCollector [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^EroCrawler [OR]
RewriteCond %{HTTP_USER_AGENT} ^Exabot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Ezooms [OR]
RewriteCond %{HTTP_USER_AGENT} ^FairShare [OR]
RewriteCond %{HTTP_USER_AGENT} ^FAST\ MetaWeb\ Crawler [OR]
RewriteCond %{HTTP_USER_AGENT} ^Feedfetcher-Google [OR]
RewriteCond %{HTTP_USER_AGENT} ^FileHound [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Flexum\ spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Foobot [OR]
RewriteCond %{HTTP_USER_AGENT} ^FrontPage [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^Gets [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Gigabot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^gotit [OR]
RewriteCond %{HTTP_USER_AGENT} ^GoZilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} ^Gulliver [OR]
RewriteCond %{HTTP_USER_AGENT} ^Harvest [OR]
RewriteCond %{HTTP_USER_AGENT} ^help.naver.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^hloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
RewriteCond %{HTTP_USER_AGENT} ^holmes [OR]
RewriteCond %{HTTP_USER_AGENT} ^HP\ Web\ PrintSmart [OR]
RewriteCond %{HTTP_USER_AGENT} ^HTMLParser [OR]
RewriteCond %{HTTP_USER_AGENT} ^httplib [OR]
RewriteCond %{HTTP_USER_AGENT} ^HTTrack [OR]
RewriteCond %{HTTP_USER_AGENT} ^humanlinks [OR]
RewriteCond %{HTTP_USER_AGENT} ^ia_archiver [OR]
RewriteCond %{HTTP_USER_AGENT} ^IBrowse [OR]
RewriteCond %{HTTP_USER_AGENT} ^ichiro [OR]
RewriteCond %{HTTP_USER_AGENT} ^IDBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^Indy\ Library [OR]
RewriteCond %{HTTP_USER_AGENT} ^InetURL [OR]
RewriteCond %{HTTP_USER_AGENT} ^InfoNaviRobot [OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^InternetSeer [OR]
RewriteCond %{HTTP_USER_AGENT} ^Iria [OR]
RewriteCond %{HTTP_USER_AGENT} ^IRLbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Java [OR]
RewriteCond %{HTTP_USER_AGENT} ^JennyBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC [OR]
RewriteCond %{HTTP_USER_AGENT} ^JS-Kit [OR]
RewriteCond %{HTTP_USER_AGENT} ^JustView [OR]
RewriteCond %{HTTP_USER_AGENT} ^Kenjin.Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Keyword.Density [OR]
RewriteCond %{HTTP_USER_AGENT} ^kmSearchBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Konqueror [OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
RewriteCond %{HTTP_USER_AGENT} ^leech [OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^LexiBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^lftp [OR]
RewriteCond %{HTTP_USER_AGENT} ^libWeb/clsHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^libwww [OR]
RewriteCond %{HTTP_USER_AGENT} ^likse [OR]
RewriteCond %{HTTP_USER_AGENT} ^Linguee [OR]
RewriteCond %{HTTP_USER_AGENT} ^LinkExchanger [OR]
RewriteCond %{HTTP_USER_AGENT} ^LinkextractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^LinkScan [OR]
RewriteCond %{HTTP_USER_AGENT} ^LinkWalker [OR]
RewriteCond %{HTTP_USER_AGENT} ^ListChecker [OR]
RewriteCond %{HTTP_USER_AGENT} ^Lupa\.ru [OR]
RewriteCond %{HTTP_USER_AGENT} ^lwp-trivial [OR]
RewriteCond %{HTTP_USER_AGENT} ^LWP::Simple [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mag-Net [OR]
RewriteCond %{HTTP_USER_AGENT} ^Magnet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mail.Ru [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mata.Hari [OR]
RewriteCond %{HTTP_USER_AGENT} ^Memo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Microsoft.URL [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIIxpc [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mirror [OR]
RewriteCond %{HTTP_USER_AGENT} ^Missigua [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^MJ12bot [OR]
RewriteCond %{HTTP_USER_AGENT} ^MLBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^moget [OR]
RewriteCond %{HTTP_USER_AGENT} ^Moreoverbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^MSFrontPage [OR]
RewriteCond %{HTTP_USER_AGENT} ^MSIECrawler [OR]
RewriteCond %{HTTP_USER_AGENT} ^msnbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^NaverBot/1.0 [OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net.*Reaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetCache [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetMechanic [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^NextGenSearchBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^nicebot [OR]
RewriteCond %{HTTP_USER_AGENT} ^NICErsPRO [OR]
RewriteCond %{HTTP_USER_AGENT} ^Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^NjuiceBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Nokia6682 [OR]
RewriteCond %{HTTP_USER_AGENT} ^noxtrumbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^NPBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Nutch [OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline [OR]
RewriteCond %{HTTP_USER_AGENT} ^OmniExplorer_Bot [OR]
RewriteCond %{HTTP_USER_AGENT} ^OneTouchSystems [OR]
RewriteCond %{HTTP_USER_AGENT} ^Openfind [OR]
RewriteCond %{HTTP_USER_AGENT} ^Page.*Saver [OR]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
RewriteCond %{HTTP_USER_AGENT} ^PEAR [OR]
RewriteCond %{HTTP_USER_AGENT} ^PHP.*/ [OR]
RewriteCond %{HTTP_USER_AGENT} ^Ping [OR]
RewriteCond %{HTTP_USER_AGENT} ^Pita [OR]
RewriteCond %{HTTP_USER_AGENT} ^Pockey [OR]
RewriteCond %{HTTP_USER_AGENT} ^Port\ Huron\ Labs [OR]
RewriteCond %{HTTP_USER_AGENT} ^PostRank [OR]
RewriteCond %{HTTP_USER_AGENT} ^ProPowerBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^ProWebWalker [OR]
RewriteCond %{HTTP_USER_AGENT} ^psbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^ptd-crawler [OR]
RewriteCond %{HTTP_USER_AGENT} ^Pump [OR]
RewriteCond %{HTTP_USER_AGENT} ^Purebot [OR]
RewriteCond %{HTTP_USER_AGENT} ^PycURL [OR]
RewriteCond %{HTTP_USER_AGENT} ^Python [OR]
RewriteCond %{HTTP_USER_AGENT} ^QihooBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^QueryN.Metasearch [OR]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^Reaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Recorder [OR]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^RepoMonkey [OR]
RewriteCond %{HTTP_USER_AGENT} ^RMA [OR]
RewriteCond %{HTTP_USER_AGENT} ^RPT-HTTPClient [OR]
RewriteCond %{HTTP_USER_AGENT} ^RufusBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^rulinki [OR]
RewriteCond %{HTTP_USER_AGENT} ^SBIder [OR]
RewriteCond %{HTTP_USER_AGENT} ^shelob [OR]
RewriteCond %{HTTP_USER_AGENT} ^ShopWiki [OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^sitecheck.internetseer.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
RewriteCond %{HTTP_USER_AGENT} ^Slurp [OR]
RewriteCond %{HTTP_USER_AGENT} ^SlySearch [OR]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^SMILE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Snagger [OR]
RewriteCond %{HTTP_USER_AGENT} ^Snake [OR]
RewriteCond %{HTTP_USER_AGENT} ^Sogou\ web\ spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Sosospider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Soup [OR]
RewriteCond %{HTTP_USER_AGENT} ^SpaceBison [OR]
RewriteCond %{HTTP_USER_AGENT} ^SpankBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^spanner [OR]
RewriteCond %{HTTP_USER_AGENT} ^spbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Speedy [OR]
RewriteCond %{HTTP_USER_AGENT} ^Speedy\ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^StackRambler [OR]
RewriteCond %{HTTP_USER_AGENT} ^Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^suggybot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SurveyBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^suzuran [OR]
RewriteCond %{HTTP_USER_AGENT} ^SWeb [OR]
RewriteCond %{HTTP_USER_AGENT} ^Szukacz [OR]
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport [OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^Telesoft [OR]
RewriteCond %{HTTP_USER_AGENT} ^The.Intraformant [OR]
RewriteCond %{HTTP_USER_AGENT} ^TheFreeDictionary.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^TheNomad [OR]
RewriteCond %{HTTP_USER_AGENT} ^TightTwatBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Titan [OR]
RewriteCond %{HTTP_USER_AGENT} ^TMCrawler [OR]
RewriteCond %{HTTP_USER_AGENT} ^toCrawl/UrlDispatcher [OR]
RewriteCond %{HTTP_USER_AGENT} ^Triton [OR]
RewriteCond %{HTTP_USER_AGENT} ^True_Robot [OR]
RewriteCond %{HTTP_USER_AGENT} ^ttCrawler [OR]
RewriteCond %{HTTP_USER_AGENT} ^turingos [OR]
RewriteCond %{HTTP_USER_AGENT} ^TurnitinBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^TurtleScanner [OR]
RewriteCond %{HTTP_USER_AGENT} ^Twiceler [OR]
RewriteCond %{HTTP_USER_AGENT} ^UniversalFeedParser [OR]
RewriteCond %{HTTP_USER_AGENT} ^URLy.Warning [OR]
RewriteCond %{HTTP_USER_AGENT} ^User-Agent [OR]
RewriteCond %{HTTP_USER_AGENT} ^Vacuum [OR]
RewriteCond %{HTTP_USER_AGENT} ^VCI [OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
RewriteCond %{HTTP_USER_AGENT} ^VoilaBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^voyager [OR]
RewriteCond %{HTTP_USER_AGENT} ^Weazel [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web.*Image.*Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web.*Spy [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web.*Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web.Image.Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAlta [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebBandit [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCapture [OR]
RewriteCond %{HTTP_USER_AGENT} ^webcollage [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebData [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebEMailExtrac.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebEnhancer [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebEx [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebExtractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebmasterWorldForumBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebMirror [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebRecorder [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSite.*Extractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website.*Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website.Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSpy [OR]
RewriteCond %{HTTP_USER_AGENT} ^Webster [OR]
RewriteCond %{HTTP_USER_AGENT} ^Webster.Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^Webster\ Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebZip [OR]
RewriteCond %{HTTP_USER_AGENT} ^Wget [OR]
RewriteCond %{HTTP_USER_AGENT} ^Whacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
RewriteCond %{HTTP_USER_AGENT} ^WordPress [OR]
RewriteCond %{HTTP_USER_AGENT} ^WWW-Collector-E [OR]
RewriteCond %{HTTP_USER_AGENT} ^www.cuill.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^www.metacrawler.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^www\.asona\.org [OR]
RewriteCond %{HTTP_USER_AGENT} ^www\.cys\.ru [OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Wysigot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xenu's [OR]
RewriteCond %{HTTP_USER_AGENT} ^Yahoo [OR]
RewriteCond %{HTTP_USER_AGENT} ^YahooSeeker [OR]
RewriteCond %{HTTP_USER_AGENT} ^Yanga [OR]
RewriteCond %{HTTP_USER_AGENT} ^Yeti [OR]
RewriteCond %{HTTP_USER_AGENT} ^YottosBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus [OR]
RewriteCond %{HTTP_USER_AGENT} ^ZyBorg
RewriteCond %{HTTP_USER_AGENT} almaden [OR]
RewriteCond %{HTTP_USER_AGENT} ^Anarchie [OR]
RewriteCond %{HTTP_USER_AGENT} ^ASPSeek [OR]
RewriteCond %{HTTP_USER_AGENT} ^autoemailspider [OR]
RewriteCond %{HTTP_USER_AGENT} ^BatchFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:[email protected] [OR]
RewriteCond %{HTTP_USER_AGENT} ^bumblebee [OR]
RewriteCond %{HTTP_USER_AGENT} ^CICC [OR]
RewriteCond %{HTTP_USER_AGENT} ^DA [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo\ Pump [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Wonder [OR]
RewriteCond %{HTTP_USER_AGENT} ^DSurf15a [OR]
RewriteCond %{HTTP_USER_AGENT} ^EasyDL/2.99 [OR]
RewriteCond %{HTTP_USER_AGENT} email [NC,OR]
RewriteCond %{HTTP_USER_AGENT} FrontPage [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^GetSmart [OR]
RewriteCond %{HTTP_USER_AGENT} ^gigabaz [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go\!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^grub-client [OR]
RewriteCond %{HTTP_USER_AGENT} ^httpdown [OR]
RewriteCond %{HTTP_USER_AGENT} .*httrack.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Indy*Library [OR]
RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InternetLinkagent [OR]
RewriteCond %{HTTP_USER_AGENT} ^InternetSeer.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^JBH*agent [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Link*Sleuth [OR]
RewriteCond %{HTTP_USER_AGENT} ^Link [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*Indy [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*NEWT [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mozilla*MSIECrawler [OR]
RewriteCond %{HTTP_USER_AGENT} ^MS\ FrontPage* [OR]
RewriteCond %{HTTP_USER_AGENT} ^MSProxy [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} ^PingALink [OR]
RewriteCond %{HTTP_USER_AGENT} ^QRVA [OR]
RewriteCond %{HTTP_USER_AGENT} ^Scooter [OR]
RewriteCond %{HTTP_USER_AGENT} ^Seeker [OR]
RewriteCond %{HTTP_USER_AGENT} ^Siphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^sproose [OR]
RewriteCond %{HTTP_USER_AGENT} ^URLSpiderPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebHook [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebMiner [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website [OR]
RewriteCond %{HTTP_USER_AGENT} WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^x-Tractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xenu [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus.*Webster [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteCond %{HTTP_USER_AGENT} .*ahrefs.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*bingbot.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*Slurp.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*Ask\sJeeves.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*HP\sWeb\sPrintSmart.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*HTTrack.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*IDBot.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Indy\sLibrary.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*ListChecker.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*MSIECrawler.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*NetCache.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Nutch.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*RPT-HTTPClient.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*rulinki\.ru.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Twiceler.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebAlta.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Webster\sPro.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*www\.cys\.ru.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Wysigot.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Yeti.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Accoona.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*CazoodleBot.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*CFNetwork.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*ConveraCrawler.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*DISCo.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Download\sMaster.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*FAST\sMetaWeb\sCrawler.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Flexum\sspider$ [OR]
RewriteCond %{HTTP_USER_AGENT} .*Gigabot.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*HTMLParser.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*ia_archiver.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*ichiro.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*IRLbot.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Java.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*km\.ru\sbot$ [OR]
RewriteCond %{HTTP_USER_AGENT} .*kmSearchBot.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*libwww-perl.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Lupa\.ru.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*LWP::Simple.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*lwp-trivial.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Missigua.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*MJ12bot.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*msnbot.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*msnbot-media.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Offline\sExplorer.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*OmniExplorer_Bot.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*PEAR.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*psbot.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Python.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*SMILE.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Speedy.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Teleport\sPro.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*TurtleScanner.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*voyager.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebCopier.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebData.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*WebZIP.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Wget.* [OR]
RewriteCond %{HTTP_USER_AGENT} .*Yanga.*
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bolt\ 0 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot\@yahoo\.com [NC,OR]
RewriteCond %{HTTP_USER_AGENT} CazoodleBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Default\ Browser\ 0 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^DIIbot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [NC,OR]
RewriteCond %{HTTP_USER_AGENT} discobot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ecxi [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailCollector [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [NC,OR]
RewriteCond %{HTTP_USER_AGENT} GT::WWW [NC,OR]
RewriteCond %{HTTP_USER_AGENT} heritrix [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [NC,OR]
RewriteCond %{HTTP_USER_AGENT} HTTP::Lite [NC,OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ia_archiver [NC,OR]
RewriteCond %{HTTP_USER_AGENT} IDBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} id-search [NC,OR]
RewriteCond %{HTTP_USER_AGENT} id-search\.org [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InternetSeer\.com [NC,OR]
RewriteCond %{HTTP_USER_AGENT} IRLbot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ISC\ Systems\ iRc\ Search\ 2\.1 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Java [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [NC,OR]
RewriteCond %{HTTP_USER_AGENT} libwww [NC,OR]
RewriteCond %{HTTP_USER_AGENT} libwww-perl [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Link [NC,OR]
RewriteCond %{HTTP_USER_AGENT} LinksManager.com_bot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} linkwalker [NC,OR]
RewriteCond %{HTTP_USER_AGENT} lwp-trivial [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Maxthon$ [NC,OR]
RewriteCond %{HTTP_USER_AGENT} MFC_Tear_Sample [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^microsoft\.url [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Microsoft\ URL\ Control [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Missigua\ Locator [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Mozilla\.*Indy [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Mozilla\.*NEWT [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^MSFrontPage [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Nutch [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [NC,OR]
RewriteCond %{HTTP_USER_AGENT} panscient.com [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [NC,OR]
RewriteCond %{HTTP_USER_AGENT} PECL::HTTP [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^PeoplePal [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Ping [NC,OR]
RewriteCond %{HTTP_USER_AGENT} PHPCrawl [NC,OR]
RewriteCond %{HTTP_USER_AGENT} PleaseCrawl [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^psbot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Rippers\ 0 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} SBIder [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^SeaMonkey$ [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^sitecheck\.internetseer\.com [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Snoopy [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Steeler [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Toata\ dragostea\ mea\ pentru\ diavola [NC,OR]
RewriteCond %{HTTP_USER_AGENT} URI::Fetch [NC,OR]
RewriteCond %{HTTP_USER_AGENT} urllib [NC,OR]
RewriteCond %{HTTP_USER_AGENT} User-Agent [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Web\ Sucker [NC,OR]
RewriteCond %{HTTP_USER_AGENT} webalta [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^[Ww]eb[Bb]andit [NC,OR]
RewriteCond %{HTTP_USER_AGENT} WebCollage [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [NC,OR]
RewriteCond %{HTTP_USER_AGENT} Wells\ Search\ II [NC,OR]
RewriteCond %{HTTP_USER_AGENT} WEP\ Search [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Wget [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Widow [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^WWW-Mechanize [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [NC,OR]
RewriteCond %{HTTP_USER_AGENT} zermelo [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus\.*Webster [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ZyBorg [NC]
__________________
No cyber wars and all wars... ( Strannic)
|
|
|
25.07.2014, 23:42
|
#13
|
главный злодей гофака
Регистрация: 18.06.2007
Сообщений: 5,734
Бабло: $953848
|
Strannic,
Цитата:
RewriteCond %{HTTP_USER_AGENT} ^msnbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bingbot [OR]
|
ну ну
__________________
|
|
|
26.07.2014, 00:17
|
#14
|
$400
Регистрация: 17.05.2009
Сообщений: 14,021
Бабло: $1906310
|
ну, хули, боты задрачивают серваки
на то они и боты, работа у них такая
чизер красава толково все классифицировал
|
|
|
30.07.2014, 10:36
|
#15
|
Senior Member
Регистрация: 23.04.2007
Сообщений: 2,115
Бабло: $337995
|
Черный список IP адресов - ботов, 25,000 ip адресов
Свежий Черный список IP адресов - ботов, 25,000 ip адресов (обновляется каждый день)
Online доступ - http://ru.myip.ms/browse/blacklist/
Список в текстовом файле - http://ru.myip.ms/downloads/blacklist/
Спиcок обновляется каждый час, сейчас в нем 25,000 ip адресов. Он включает непознаваемые боты, маскирующиеся под пользователей, а также - Majestic12 bots, Proximic bots, 80legs bots, Ahrefs bots, etc.
Цитата:
На данный момет данный список в автоматическом режиме скачивают около 500 компаний/хостеров. Топ стран по скачиванию - США/Германия/Израиль.
Наши сайты посещают каждый день десятки тысяч посетителей, многие из них идентифицируемы, но также приходят различные непознаваемые боты, поисковые агенты, спам боты и роботы на наши сайты. То есть у нас есть десятки тысяч IP-адресов каждый день, которые могут и будут проанализированы для блокирования спам ботов, и.т.д.
Наша уникальная система защиты позволяет легко идентифицировать реальных посетителей ip адреса и ip адреса ботов, поисковых агентов, спам ботов, а также другие угрозы, включая неизвестных спам ботов, маскирующихся непосредственно под нормальных пользователей.
Принцип действия нашей системы защиты очень прост: мы позволяем любому пользователю просматривать 10-20 страниц на любом из наших веб-сайтов, и после этого, система начинает показывать форму бесплатной регистрации на веб-сайте и блокирует все страницы веб-сайта (то есть посетитель видит только форму бесплатной регистрации на всех страницах сайта). Мы просим, чтобы посетители бесплатно зарегистрировались на сайте сами или повторно зашли на сайт через 24 часа, чтобы продолжить просматривать другие страницы сайта.
Боты/поисковые агенты игнорируют форму регистрации, и пытаются продолжить сканировать веб-сайт. Нормальные пользователи могут нажать на ссылки на веб-сайте также, но они будет видеть все время форму регистрации и после того, как они увидят ее на 10-20 страниц, пользователи перестают нажимать на ссылки. Но боты продолжают сканировать сайт все равно несмотря что все время показывается форма регистрации. Мы считаем количество показанных страниц. И после 100 показов различных страниц с формой регистрации, мы можем быть на 100 % уверены, что посетитель - это БОТ, даже если он маскируется под обычного пользователя.
Если пользовательская строка бота не содержит идентификацию бота и маскирует его под обычного пользователя, то мы автоматически добавляем этот IP в наш черный список. Например у Google бота пользовательский агент:
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html и он не скрывает этого.
Поэтому наш Черный Список IP адресов состоит только из неизвестных ботов / спам ботов, маскирующихся непосредственно под нормальных пользователей, и в нашем Черном списке нет известных ботов поисковиков как Google бот, Yahoo бот, Bing бот и других, которые не пытаются замаскироваться под реальных пользователей.
Мы не нашли в Интернете подобного вида сервис, который создает Черный список неизвестных спам ботов в режиме реального времени, таким образом, надеемся, вы найдете наш черный список ip адресов спам ботов полезным -
http://ru.myip.ms/browse/blacklist/
С уважением
Михаил, Web Developer
www.myip.ms
|
Источник
|
|
|
30.07.2014, 12:28
|
#16
|
Ебланнед
Регистрация: 30.06.2014
Сообщений: 85
Бабло: $11890
|
chesser это охуенчик, все сжато и четко
Grut тоже спасибо, хороший ресурс
__________________
- Запрещено иметь несколько аккаунтов одному человеку. В случае обнаружения будут забанены как основной аккаунт, так и его клоны.
|
|
|
21.08.2014, 21:09
|
#17
|
Member
Регистрация: 10.06.2008
Сообщений: 76
Бабло: $21324
|
А как например логировать ботов?
допустим сюда
PHP код:
if ($bad_location) {
return 444;
}
дописать, чтоб ip записался в файлик ?
|
|
|
21.08.2014, 21:49
|
#18
|
автоматизирую интернеты
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,350
Бабло: $470735
ТС -->
|
ТС
Цитата:
Сообщение от wiam
А как например логировать ботов?
допустим сюда
PHP код:
if ($bad_location) { return 444; }
дописать, чтоб ip записался в файлик ?
|
где-нибудь в http секции определяем новый лог-формат:
http.conf:
PHP код:
log_format bad_ips '$remote_addr';
и далее добавляем саму строчку с логированием:
PHP код:
if ($bad_location) { access_log /var/log/nginx/badips.log bad_ips; return 444; }
подробнее про этот log nginx-модуль тут
UPD:
я немного ошибся, тут будут проблемы с контекстом. Этот if должен быть внутри location, например внутри location / {}
UPD2:
но в последних версиях nginx как раз для подобного случая в директиве access_log появился параметр if
т.е. просто в любом допустимом контексте (например в server {...}) можно добавить следующую строчку:
PHP код:
access_log /var/log/nginx/badips.log bad_ips if=$bad_location;
т.е. она независима от первоначальной секции if ($bad_location) {...}
Последний раз редактировалось chesser; 21.08.2014 в 21:57.
|
|
|
21.08.2014, 22:21
|
#19
|
Member
Регистрация: 10.06.2008
Сообщений: 76
Бабло: $21324
|
Спасибо за разъяснение, сейчас все побаню )
|
|
|
09.09.2014, 02:49
|
#20
|
Member
Регистрация: 24.07.2008
Сообщений: 30
Бабло: $11180
|
Цитата:
Сообщение от chesser
в апаче есть httpd.conf и все, что в него инклудится - это статическая часть апачевского конфига, в ней побольше возможностей, чем в htaccess, синтаксис такой же, но надо ребутать/релоадить сервер. Но все равно хрен редьки не слаще )
А зачем ты апачем банишь, если есть nginx? или это про разные серверы?
Буржуи в связке с апачем часто используют lighttpd, но в связи с усилением международного пиара nginx, соотношение nginx / lighttpd изменилось.
Можно даже апачем собирать IP и формировать из них черные списки для фаервола - самый низкий уровень, который тебе доступен на сервере.
принципиальной разницы нет, оба правильные.
Для описания признаков я использую map-переменные, они имхо удобнее в использовании, чем if (список) , особенно когда этот список длинный - с одной стороны. С другой стороны, мои regexp-ы в map-ах надо бы разбивать и компоновать в группы...
Еще у тебя return 403 - т.е. бот-трафик проходит всю цепочку полностью, от (1) до (9), потому что 403 ответ - это именно HTTP-ответ, а не обрыв. У меня return 444 и nginx обрубает соединение в районе точки (4).
Возможно, у тебя цель отдать боту 403. Как эффективнее отваживать ботов ходить на сервер - я не знаю, статистики нет на этот счет, не сравнивал.
|
444 лучше не отдавать, у вас сокетов полу открытых будет огромное количество, из-за того, что вы закрываете соединение каждый раз, а боты будут устанавливать новое с каждым request
403 -нормуль.
|
|
|
27.09.2014, 17:32
|
#21
|
главный злодей гофака
Регистрация: 18.06.2007
Сообщений: 5,734
Бабло: $953848
|
если в nginx заблочить 4к ip через map или deny, на работоспособность не повлияет?
__________________
|
|
|
|