Как забаннить ботов без User-Agent

Хорошо, когда ботов можно легко идентифицировать и заблокировать еще до того, как они проникнут на ваш сайт. Однако некоторые боты спаммеров вообще не имеют user agent. Вот что нам пишет Википедия по поводу этого пресловутого параметра:

User Agent — это клиентское приложение, использующее определённый сетевой протокол. Термин обычно используется для приложений, осуществляющих доступ к веб-сайтам, таким как браузеры, поисковые роботы (и другие «пауки»), мобильные телефоны и другие устройства.

При посещении веб-сайта клиентское приложение обычно посылает веб-серверу информацию о себе. Это текстовая строка, являющаяся частью HTTP запроса, начинающаяся с User-agent: или User-Agent:, и обычно включающая такую информацию, как название и версию приложения, операционную систему компьютера и язык. У «пауков» эта строка часто содержит URL и email-адрес, по которым веб-мастер может связаться с оператором «паука».

B вот тут появляется еще одна возможность отсеивания спама еще на стадии обращения бота к сайту. Так как многие боты спаммеров вообще не имеют user agent, то их можно уволить забанить — просто запретить доступ на сайт для тех, у кого нет этого самого user agent. Я предполагаю, что правильный, честный бот какой-нибудь поисковой системы имеет вменяемый user agent, и его наш фильтр не тронет. А вот всякую шушару нужно банить нещадно:

# Банним ботов и массовые качалки по юзер агенту

 RewriteEngine On
 RewriteCond %{HTTP_USER_AGENT} ^$                                                              [OR]
 RewriteCond %{HTTP_USER_AGENT} ^.*(|'|%0A|%0D|%27|%3C|%3E|%00).*                            [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^.*(HTTrack|clshttp|archiver|loader|email|nikto|miner|python).* [NC,OR]
 RewriteCond %{HTTP_USER_AGENT} ^.*(winhttp|libwww-perl|curl|wget|harvest|scan|grab|extract).* [NC]
 RewriteRule ^(.*)$ - [F,L]

Этот код как раз этим и занимается, а заодно банит и всех, кто пытается массово скачивать содержимое сайта (например, делать себе локальную копию всего содержимого). Размещаем его в файле htaccess.

Автор tiaurus 2182 Articles
Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

7 Комментарии

  1. Несколько раз перечитал пост, но так и не понял, куда поместить указанный код?.. Не сердитесь на ламера) В синтаксисе не силён, поэтому навскидку не смог определить.

    • Да, вы конечно правы, совершенно вылетело из головы. Размещать код нужно в файле htacess. Он находится в корне вашего сайта.

  2. Спасибо) Я так и подумал. Просто хотелось знать наверняка. Отличный у Вас блог. И не только этот. Удивляюсь Вашей работоспособности при отменном качестве.

  3. Доброго времени суток, у меня такой вопрос, – после установки вышеуказанного скрипта, у меня дрим перестал “воспринимать” картинки по полным адресам (т.е. картинка закачана на хостинг, и дрим её находил по пути http://site.ru/kartinka.jpg, и отображал в дриме в режиме визуального редактора)
    Скрипт размещён в общем файле htacess.
    Можно ли как то определить какие-то исключения для этих запретов, или этот скрипт нужно размещать конкретно в корневых папках сайтов на вордпресе ?

  4. Сори – я подумал что сокращение дрим – от Dreamweaver – вопросов не вызовет (программа-визуальный редактор для содания сайтов (HTML, CSS)) устанавливается и функционирует на компьютере.

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*