Сейчас: 05:02:36   19-го апреля 2024 г.
UsefulScript.ruХитростиЗабанить по User-Agent
6
24

Как заблокировать доступ к сайту по User-Agent

Ранее мы уже рассматривали, как заблокировать доступ к сайту по IP адресу. А что же делать, если у нежелательного посетителя IP-адрес динамический и он постоянно его меняет?


В данном случае можем Вам порекомендовать забанить этого нежелательного посетителя по идентификационной строке браузера (User-Agent). User-Agent это текстовая строка, являющаяся частью HTTP запроса и обычно включающая такую информацию, как название и версию приложения, операционную систему компьютера и язык.


Для блокировки доступ к сайту по User-Agent, необходимо в корневой папке Вашего сайта создать файл .htaccess (именно с названием .htaccess, а не с расширением) и прописать в нем следующие строки:

Цитата:
SetEnvIfNoCase User-Agent "Java/1.6.0_04" bad_bot

<Limit GET POST HEAD>
 
Order Allow,Deny
 Allow from all
 Deny from env
=bad_bot
</Limit>

Все, теперь для пользователя, в User-Agent которого встречается сочетание Java/1.6.0_04 Ваш сайт не существует!


Для того чтобы забанить несколько разных User-Agent, просто добавьте необходимое количество строк, начинающихся с SetEnvIfNoCase. В результате у Вас получится что-то вроде этого:

Цитата:
SetEnvIfNoCase User-Agent "Java/1.6.0_04" bad_bot
SetEnvIfNoCase User
-Agent "Java/1.6.0_24" bad_bot
SetEnvIfNoCase User
-Agent "Downloader" bad_bot

<Limit GET POST HEAD>
 
Order Allow,Deny
 Allow from all
 Deny from env
=bad_bot
</Limit>

Надеюсь, данный пример Вам еще не раз пригодится в борьбе с нежелательными посетителями и различными ботами!

Дата создания: 18:39:51 26.11.2011 г.
Дата обновления: 22:36:47 08.03.2012 г.
Посещений: 17168 раз(а).

Комментарии посетителей (23 шт.):
Владимир
1
# 387
(21:03:21  10.11.2012 г.)

Доброго времени суток.
Скажите, как заблокировать, если известен только город посещения?
Спасибо.
Ответить

Administrator
0
# 388
(22:08:38  10.11.2012 г.)

Владимир, можем Вам только посоветовать сначала определить, а потом забанить подсеть провайдера этого города.
Ответить

Владимир
0
# 389
(22:31:46  10.11.2012 г.)

Подскажите, пожалуйста, как это сделать?
Для статистики использую google analytics.
Ответить

Administrator
0
# 390
(23:26:31  10.11.2012 г.)

Владимир, если Вам известен хотя бы один IP адрес, то идите на 2ip.ru/whois. Там Вы узнаете диапазон IP адресов данного провайдера (inetnum). Далее баните подсеть - http://usefulscript.ru/ban_ip.php
Ответить

Роман
0
# 1431
(02:08:45  27.01.2014 г.)

А как закрыть доступ для Unknown robot (identified by 'bot*')?
Ответить

Administrator
0
# 1432
(19:23:11  27.01.2014 г.)

Добавьте в код строчку:
SetEnvIfNoCase User-Agent "Unknown robot" bad_bot
Заметьте, что не обязательно указывать User-Agent целиком. Можно указать только его начало.
Ответить

тихон
0
# 3082
(23:57:12  15.03.2016 г.)

А как можно запретить доступ для vlc плеера?
Ответить

Blinux
0
# 3297
(13:44:22  30.06.2016 г.)

А как разрешить доступ только для какого-нибудь определенного user-agent'a?
Ответить

Administrator
0
# 3300
(19:39:52  30.06.2016 г.)

Поменяйте директивы Allow и Deny местами:
Deny from all
Allow from env=bad_bot
Ответить

Сергей
0
# 3528
(10:03:54  29.10.2016 г.)

Очень прошу, подскажите, как применить это правило для всех сайтов сразу, т.е. как его правильно прописать в "httpd.conf"? А то на всех сайтах пишут про ".htaccess", а про "httpd.conf" никто не написал. Если это правило вписать как есть в "httpd.conf", то блокировка не срабатывает. Прошу помочь.
Ответить

Алексей
0
# 3604
(10:48:36  03.12.2016 г.)

С завидным постоянством где-то раз в час на сайт заходит это настроенное чудо. IP каждый раз новые, поэтому банить по IP не удастся. А вот user-agent только у него одного. Как ему запретить ходить? По вашему примеру ставил User-Agent "Mozilla/5.0 Gecko/20100101 Firefox/40.1" - не помогло. Вот периодично повторяющаяся часть логов:
176.32.22.182 - - [02/Dec/2016:11:15:35 +0300] "POST /xmlrpc.php HTTP/1.1" 200 403 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
176.32.22.182 - - [02/Dec/2016:11:15:36 +0300] "GET /wp-login.php HTTP/1.1" 403 1139 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
176.32.22.182 - - [02/Dec/2016:11:15:37 +0300] "POST /wp-login.php HTTP/1.1" 403 1139 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1"
Ответить

Administrator
0
# 3606
(15:32:46  03.12.2016 г.)

У Вас значение User-Agent не совпадает с тем, что Вы привели в логах. Надо так:
User-Agent "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1" bad_bot
Ответить

Алексей
0
# 3611
(00:59:43  05.12.2016 г.)

Поставил именно так. Не сработало. Та же статистика.
Ответить

Administrator
0
# 3619
(21:42:19  09.12.2016 г.)

Попробуйте забанить свой User-Agent и зайти на сайт, а потом гляньте логи. Если увидите содержимое сайта, то у Вашего хостинга что-то не так работает.
P.S. Попробуйте указать только часть User-Agent.
Ответить

Алексей
0
# 3620
(20:32:48  10.12.2016 г.)

Меня тоже не блокирует... Указывал полное наименование...
А если часть указать, то какую предпочтительнее: начальную - типа ^Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0).* или конечную - типа .*Gecko/20100101 Firefox/40.1$
Ответить

Игорь
0
# 3605
(13:56:48  03.12.2016 г.)

Здравствуйте. Благодарю за ваш ресурс. Подскажите, как по такому же принципу реализовать следующее: необходимо разрешить файл robotx.txt только определенным поисковым ботам, а остальным запретить. Такая конструкция не работает:
SetEnvIfNoCase User-Agent .*google.* search_robot
SetEnvIfNoCase User-Agent .*yandex.* search_robot
<FilesMatch robots.txt>
Order Deny,Allow
Deny from All
Allow from env=search_robot
</FilesMatch>
Ответить

Administrator
1
# 3607
(16:35:09  03.12.2016 г.)

Вместо FilesMatch нужно использовать Files:
SetEnvIfNoCase User-Agent 'google' search_robot
SetEnvIfNoCase User-Agent 'yandex' search_robot
<Files robots.txt>
Order Deny,Allow
Deny from all
Allow from env=search_robot
</Files>
Ответить

Valeriy
0
# 4072
(12:56:45  14.09.2017 г.)

Спасибо за статью. Только указанным способом удалось остановить надоедливого бота AhrefsBot.
Ответить

Олеся
0
# 4501
(11:37:15  11.08.2019 г.)

Здравствуйте. В мой эл. ящик mail.ru каждый день заходит кто-то через юзер агент
"Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, like Gecko) Chrome/75.0.3770.143 YaBrowser/19.7.2.455 Yowser/2.5 Safari/ 537.36"
Помогите, пожалуйста, заблокировать!
Объясните куда войти и что мне надо сделать пошагово, пожалуйста. Я из начинающих, прошу отнестись с пониманием.
Ответить

Administrator
0
# 4502
(12:38:00  11.08.2019 г.)

По User-Agent заблокировать не получится. Тут нужно менять пароль, контрольный вопрос, почту для восстановления пароля, убедиться, что к Вашему телефону никто не имеет доступа и обязательно проверить все диски антивирусом.
Ответить

Олеся
0
# 4503
(23:11:14  11.08.2019 г.)

Добрый вечер. Пароли меняла неоднократно, стоит двухфакторная аутентификация, вредоносное ПО антивирусник не находит, собственно он вообще ничего не находит, а проблема остается. Как быть?
Ответить

Александр
0
# 5012
(05:10:32  13.10.2023 г.)

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

Михаил
0
# 4536
(13:14:45  29.10.2019 г.)

Спасибо за вашу работу.
Подскажите, а как вывести уведомление о том, что если это человек, что он заблокирован. Я так понимаю сейчас просто стандартное браузеровское 403 выводится.
Ответить

Закрыть
Ваше имя:
247 + 7 =
Добавить комментарий:
Ваше имя:
247 + 7 =

Перед публикацией все комментарии проходят обязательную модерацию!

Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Посетителей онлайн: 2

Какую CMS для сайта Вы предпочитаете?