Как заблокировать доступ к сайту по пользовательскому агенту
Разделы
- Все
- Блог 44
- Начало работы 10
- Интернет магазин 26
- Домены 10
- Заявки и заказы 5
- Продвижение сайтов 20
- Интеграции 28
- Повышение конверсии 6
- Тарифы и оплата 4
- Редактор конструктора 25
- Технические вопросы и частые ошибки 129
- Другие вопросы 18
- Создание сайтов 240
- Копирайтинг 33
- Интернет маркетинг 1411
- Бизнес обучение 214
- Заработок в интернете 129
В современной веб-экосистеме управление доступом к контенту является критически важной задачей для администраторов и владельцев сайтов. Одним из гибких методов фильтрации трафика является блокировка по пользовательскому агенту (User Agent).
Пользовательский агент - это строка, которую браузер или другое клиентское приложение передает веб-серверу при каждом запросе, идентифицируя себя и свою платформу.
Блокировка на стороне веб-сервера
Это наиболее надежный и эффективный метод, так как запрос отклоняется непосредственно на точке входа, до обработки основным веб-приложением. Он реализуется путем конфигурирования программного обеспечения веб-сервера.
Также предоставляется подробный разбор в формате видео:
1. Использование модуля mod_rewrite в Apache
В сервере Apache для анализа и блокировки запросов по пользовательскому агенту часто применяется модуль mod_rewrite. Правила записываются в файл .htaccess, расположенный в корневой директории сайта, или в основную конфигурацию виртуального хоста. Данный модуль позволяет проверять переменную окружения HTTP_USER_AGENT и перенаправлять или запрещать запросы, которые соответствуют заданным условиям.
Пример: Для блокировки доступа известному парсеру "BadBot" и всем запросам от устаревшего браузера "Internet Explorer 10" можно добавить в .htaccess следующий код:
text
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^(.*)(BadBot|MSIE 10)(.*)$ [NC]
RewriteRule ^(.*)$ - [F,L]
В этом примере флаг [F] возвращает статус 403 Forbidden, а [L] означает, что это последнее правило, которое должно обрабатываться.
2. Конфигурирование директивы access в Nginx
Веб-сервер Nginx для подобных задач использует директиву location в сочетании с if и return внутри конфигурационного файла виртуального хоста (обычно в файлах типа sites-available/your_site). Этот подход требует большей аккуратности, так как неправильное использование директивы if в Nginx может привести к неожиданным результатам.
Пример: Чтобы запретить доступ всем клиентам на базе операционной системы Android и сканеру безопасности "Nmap", конфигурация может выглядеть так:
text
server {
listen 80;
server_name example.com;
location / {
if ($http_user_agent ~* (Android|Nmap)) {
return 403;
}
# ... остальные директивы ...
}
}
Символы ~* означают, что сравнение с пользовательским агентом происходит без учета регистра.
3. Применение брандмауэра веб-приложений
Современные системы безопасности, такие как брандмауэры веб-приложений, предоставляют мощный и удобный графический интерфейс для создания правил фильтрации. WAF может анализировать весь входящий трафик, включая заголовки HTTP, и блокировать запросы на основе сложных условий, объединяющих User Agent с другими параметрами, например, IP-адресом.
Пример: В панели управления CloudFlare WAF можно создать пользовательское правило с логикой: "Если значение User Agent совпадает с регулярным выражением .*(Scanner|Bot).*, и запрос исходит не из вашей корпоративной сети, то блокировать доступ". Это позволяет точечно бороться с автоматизированными скриптами.

Блокировка на стороне клиента
Данный подход менее надежен, так как зависит от конечного пользователя и может быть легко обойден, но он может быть полезен для быстрого тестирования или в ситуациях, когда нет доступа к настройкам сервера.
1. Установка специализированных браузерных расширений
Существуют плагины для браузеров, которые позволяют пользователю вручную изменять или блокировать запросы к определенным сайтам на основе их пользовательского агента.
Эти расширения перехватывают исходящие запросы и либо подменяют заголовок User Agent на другой, либо полностью отменяют запрос, если он соответствует заданному правилу.
Пример: Расширение "User-Agent Switcher" для Chrome и Firefox позволяет не только подменять свой User Agent, но и создавать черные списки URL. Вы можете настроить правило: "При посещении сайта example.com, если мой браузер определен как "Chrome 85", автоматически блокировать загрузку страницы".
2. Изменение файла hosts в операционной системе
Этот метод позволяет перенаправить доменное имя сайта на несуществующий или локальный IP-адрес, что приведет к невозможности установить соединение.
Хотя он не анализирует User Agent напрямую, его можно использовать в связке со скриптами, которые динамически вносят изменения в файл hosts при обнаружении определенного User Agent.
Пример: Статическая запись в файле hosts (расположенном в C:\Windows\System32\drivers\etc\ в Windows или /etc/hosts в Linux/macOS) выглядит так:
text
127.0.0.1 example.com
Это перенаправит все запросы к example.com на ваш локальный компьютер, эффективно блокируя сайт для всех браузеров и приложений на этой машине.
3. Настройка правил в программном обеспечении родительского контроля или антивирусе
Многие решения для родительского контроля и комплексные антивирусы имеют функции блокировки веб-сайтов. Некоторые из них позволяют настраивать правила не только по URL, но и по содержимому, а в продвинутых случаях - и по другим параметрам, потенциально включая User Agent.
Пример: В настройках антивируса Kaspersky Safe Kids можно создать правило: "Заблокировать доступ к социальной сети "VKontakte" для браузера "Firefox", в то время как в браузере "Chrome" доступ разрешен". Это реализует сценарий блокировки на основе клиентского приложения.
Сравнение методов блокировки
|
Критерий |
Серверный метод |
Клиентский метод |
|---|---|---|
|
Эффективность |
Высокая. Запрос блокируется до обработки. |
Низкая. Легко обходится пользователем. |
|
Надежность |
Абсолютная. Пользователь не может отключить блокировку. |
Относительная. Зависит от настроек клиента. |
|
Сфера применения |
Все пользователи, обращающиеся к сайту. |
Только конкретное устройство или браузер. |
|
Сложность настройки |
Требует доступа к серверу и знаний администрирования. |
Проста для конечного пользователя. |
|
Гибкость |
Очень высокая, позволяет использовать регулярные выражения. |
Ограничена функционалом расширения или программы. |
Вывод
Выбор метода блокировки доступа к сайту по пользовательскому агенту напрямую зависит от поставленных целей и имеющихся ресурсов. Серверная блокировка является промышленным стандартом, обеспечивающим максимальный контроль и безопасность, и должна применяться администраторами для защиты веб-ресурсов от нежелательного трафика.
Клиентские же методы служат скорее как вспомогательные или временные решения для персонального использования, но их нельзя рассматривать как серьезное препятствие для целеустремленного пользователя.

