Как заблокировать доступ к сайту по 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>
Надеюсь, данный пример Вам еще не раз пригодится в борьбе с нежелательными посетителями и различными ботами!
Перед публикацией все комментарии проходят обязательную модерацию!
Если Вы хотите задать какой-либо вопрос, то сделайте это на нашем форуме.
Таким образом, Вы сможете быстрее получить ответ на интересующий Вас вопрос.
Скажите, как заблокировать, если известен только город посещения?
Спасибо.
Для статистики использую google analytics.
SetEnvIfNoCase User-Agent "Unknown robot" bad_bot
Заметьте, что не обязательно указывать User-Agent целиком. Можно указать только его начало.
Deny from all
Allow from env=bad_bot
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"
User-Agent "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1" bad_bot
P.S. Попробуйте указать только часть User-Agent.
А если часть указать, то какую предпочтительнее: начальную - типа ^Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0).* или конечную - типа .*Gecko/20100101 Firefox/40.1$
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>
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>
"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"
Помогите, пожалуйста, заблокировать!
Объясните куда войти и что мне надо сделать пошагово, пожалуйста. Я из начинающих, прошу отнестись с пониманием.
Подскажите, а как вывести уведомление о том, что если это человек, что он заблокирован. Я так понимаю сейчас просто стандартное браузеровское 403 выводится.