Закрыть
Скидки в Webasyst 25–29 ноября 2021

Фаервол для Вебасиста

Фильтруйте запросы к вашему сайту от посторонних ботов и снижайте нагрузку на сервер.

24 сентября 2018, версия 1.0.3


На каждом сайте время от времени происходит то, что не делают ни владелец сайта, ни его посетители. Это визиты ботов — посторонних компьютерных программ.

Интернет-сайты создаются для людей — чтобы они смотрели изображения, читали текст и совершали какие-то другие действия, нужные владельцу сайта. Боты же ничего не читают, не смотрят и не оформляют заказы. Они автоматически считывают с сайта большие объёмы информации. И делают они это не для вас или ваших клиентов, а для посторонних людей — владельцев ботов.

Если ничего не предпринимать, запросов от ботов может приходить большое количество, и от этого замедлится работа сайта для посетителей-людей. Покончить с этим безобразием поможет приложение-фильтр «Firewall (Фаервол)».

Принцип работы приложения

Приложение работает элементарно: получив запрос от посетителя сайта или бота, оно проверяет параметры запроса на соответствие настроенным правилам фильтрации. При первом же совпадении срабатывает фильтр, и бот перенаправляется на главную страницу сайта с ответом сервера 403 («Доступ запрещён»).

Какие параметры проверяются в запросах

  • HTTP_USER_AGENT — информация о программе, из которой отправлен запрос на ваш сайт. В случае с посетителями-людьми это информация о браузере.
  • REQUEST_URI — часть URL запроса после доменного имени. Например, в адресе https://mydomain.ru/shop/?search=test фильтр приложения будет проверять часть «/shop/?search=test».
  • QUERY_STRING — часть URL запроса, начинающаяся со знака вопроса «?». Например, в адресе https://mydomain.ru/shop/?search=test фильтр приложения будет проверять часть «search=test».
  • HTTP_REFERER — полный URL страницы, с которой посетитель переходит на ваш сайт.

Для каждого из этих параметров в приложении есть стандартный набор текстовых фрагментов, которые может проверять приложение. Например, для параметра HTTP_USER_AGENT доступен вот такой список:

  • 360Spider
  • Acunetix
  • BackDoorBot
  • BatchFTP
  • [список из 280 идентификаторов]

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

Дополнительные правила фильтрации

В стандартных настройках приложения можно выбрать более 300 правил фильтрации. Но может оказаться, что этих правил будет недостаточно. Например, вы увидите в логах доступа веб-сервера, что к вашему сайту часто выполняет запросы устройство, явно не браузер на компьютере пользователя, в параметрах HTTP_USER_AGENT или HTTP_REFERER которого присутствует определённый текстовый фрагмент, отличающий его от других, полезных запросов. Можно внести уникальный для этого устройства фрагмент в поля дополнительных настроек. И оно будет отфильтровано при последующих запросах.

Поисковые роботы — тоже боты

У индексирующих роботов популярных поисковых систем тоже есть свои идентификаторы, которые видны в их HTTP_USER_AGENT. Если ввести в дополнительные настройки любой фрагмент, который содержится в идентификаторах поисковых роботов, это будет означать, что пострадает индексация сайта.

Дополнительные настройки по умолчанию пусты, поэтому само по себе это не произойдёт. Нужно лишь соблюдать элементарную аккуратность и внимательность при добавлении своих настроек в дополнение к стандартному списку.

Впечатления

Приложение «Firewall (Фаервол)» — простой, надёжный и полезный инструмент. Для фильтрации запросов используется низкозатратная PHP-функция текстового поиска, поэтому использование такой фильтрации выглядит вполне оправданным.

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



* * *

«Firewall (Фаервол)» в Магазине Webasyst: https://www.webasyst.ru/store/app/firewall/