Как заблокировать доступ к сайту по пользовательскому агенту

Дата публикации: 26-10-2025       10

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

Пользовательский агент - это строка, которую браузер или другое клиентское приложение передает веб-серверу при каждом запросе, идентифицируя себя и свою платформу. 

Конструктор сайтов TOBIZ.NET

Блокировка на стороне веб-сервера

Это наиболее надежный и эффективный метод, так как запрос отклоняется непосредственно на точке входа, до обработки основным веб-приложением. Он реализуется путем конфигурирования программного обеспечения веб-сервера.

Также предоставляется подробный разбор в формате видео:

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" доступ разрешен". Это реализует сценарий блокировки на основе клиентского приложения.

Сравнение методов блокировки

Критерий

Серверный метод

Клиентский метод

Эффективность

Высокая. Запрос блокируется до обработки.

Низкая. Легко обходится пользователем.

Надежность

Абсолютная. Пользователь не может отключить блокировку.

Относительная. Зависит от настроек клиента.

Сфера применения

Все пользователи, обращающиеся к сайту.

Только конкретное устройство или браузер.

Сложность настройки

Требует доступа к серверу и знаний администрирования.

Проста для конечного пользователя.

Гибкость

Очень высокая, позволяет использовать регулярные выражения.

Ограничена функционалом расширения или программы.

Вывод

Выбор метода блокировки доступа к сайту по пользовательскому агенту напрямую зависит от поставленных целей и имеющихся ресурсов. Серверная блокировка является промышленным стандартом, обеспечивающим максимальный контроль и безопасность, и должна применяться администраторами для защиты веб-ресурсов от нежелательного трафика.

​​​​​​​Клиентские же методы служат скорее как вспомогательные или временные решения для персонального использования, но их нельзя рассматривать как серьезное препятствие для целеустремленного пользователя.

​​​​​​​

Рассказать друзьям:

Cделайте первый шаг

Выберите готовый шаблон из более 2100+ бесплатных и премиум вариантов.

ШАБЛОНЫ САЙТОВ