Как защитить сайт от ботов: разбор способов и их цены
Пять способов по порядку: от бесплатных и почти бесполезных до рабочих. И честный счёт, во что каждый обходится — не в рублях, а в потерянных заявках.
4 мин чтения
Сначала стоит договориться о том, что такое «защитить». Полностью убрать автоматический трафик невозможно и не нужно: поисковые роботы, сервисы мониторинга, краулеры соцсетей — это тоже боты, и без них сайт станет хуже. Задача другая: отсечь тех, кто вредит, и не задеть ни людей, ни полезных роботов.
Дальше — способы, от самых дешёвых к самым рабочим.
robots.txt
Первое, что советуют в интернете, и первое, что не работает.
robots.txt — это просьба, а не запрет. Его соблюдают поисковые роботы,
потому что заинтересованы в хороших отношениях с сайтами. Парсер,
написанный ради вашего каталога, этот файл проигнорирует — а заодно
прочитает как подсказку, где лежит самое интересное.
Что делает: упорядочивает работу добросовестных роботов. Против вредных ботов: ничего.
Блокировка по User-Agent
Следующий шаг — запретить в конфиге сервера обращения с подозрительными
именами: python-requests, curl, Scrapy.
Это уже что-то. Простые скрипты действительно отсекаются, а написать такое правило можно за пять минут. Проблема в том, что User-Agent подделывается одной строкой кода, и любой, кто столкнулся с блокировкой, поменяет его на строку от Chrome.
Второй риск серьёзнее: широкое правило может задеть нужного робота.
Строка bot в правиле заблокирует и Googlebot, и TelegramBot.
Что делает: отсекает самых ленивых. Риск: легко случайно заблокировать поисковик.
Блокировка по IP
Работает, пока адресов немного. Один назойливый парсер с одного адреса блокируется в две минуты.
Но у способа два тяжёлых недостатка. Первый: адреса меняются, а резидентные прокси дают боту тысячи разных адресов из сетей обычных провайдеров. Второй, куда более опасный: за одним адресом часто стоит много разных людей. Мобильные операторы выпускают абонентов в интернет через общий выход, и за одним адресом МТС может быть целый район. Заблокировав его, вы выключаете сайт для тысяч живых людей и об этом не узнаете.
Что делает: решает точечные проблемы. Риск: высокий — можно отрезать целый город.
Капча
Самый популярный ответ и самый дорогой для владельца сайта. Капча работает: большинство простых ботов её не проходят. Но цена — время и нервы каждого посетителя.
Исследования конверсии дают разброс, но направление всегда одно: каждый дополнительный шаг между «хочу оставить заявку» и «отправил» стоит части заявок. Больше всего страдают те, кто заходит с телефона, и те, кто плохо видит: картиночная капча для человека со слабым зрением — это барьер, который он часто не берёт.
Отдельно стоит сказать, что серьёзные боты капчу давно решают. Существуют сервисы распознавания за копейки, и целевая атака на ваш сайт капчей не останавливается.
Что делает: отсекает массовые простые атаки. Цена: платит покупатель, а не бот.
Антибот-сервис
Логика другая: не задавать вопрос посетителю, а посмотреть на него. Признаков, отличающих программу от человека, десятки — от набора заголовков запроса до того, двигал ли посетитель мышью. Каждый по отдельности ничего не доказывает, но вместе они дают уверенный ответ.
Главное преимущество: обычный человек ничего не замечает. Проверка показывается только в спорных случаях, а решение принимается за миллисекунды.
Главный риск: ошибка антибота стоит дороже, чем пропущенный бот. Заблокированный покупатель уходит навсегда и, скорее всего, не поймёт почему. Поэтому при выборе сервиса смотрите не на обещанную точность распознавания, а на то, что происходит при ошибке:
- Можно ли посмотреть, кого он блокирует, до того, как включить блокировку? У BotBan для этого есть обязательная неделя наблюдения.
- Видно ли, почему принято решение? Если сервис не показывает сработавшие признаки, разобраться в ошибке невозможно.
- Что произойдёт, если сервис ляжет? Правильный ответ — сайт продолжит работать без защиты. Неправильный — сайт станет недоступен.
- Блокирует ли он адреса мобильных операторов? Если да — рано или поздно потеряете район.
С чего начать
Если бюджета нет совсем: закройте админку по IP, поставьте ограничение попыток входа и уберите с сайта то, что не должно быть публичным. Это даст процентов двадцать результата бесплатно.
Если задача серьёзнее — начните с наблюдения. Прежде чем что-то блокировать, узнайте, сколько у вас автоматического трафика и какого. Часто оказывается, что проблема не там, где казалось.
Читайте также
- Как посчитать долю ботов на своём сайте Средние цифры по рынку бесполезны: доля ботов зависит от тематики и от того, кому вы интересны. Как получить свою цифру, а не среднюю по рынку.
- Сайт под атакой ботов: что делать прямо сейчас Короткая инструкция для ситуации, когда разбираться некогда: сайт тормозит или лёг, и подозрение на ботов.
- Почему блокировка по странам почти не помогает Самое соблазнительное правило в настройках защиты и одно из самых вредных. Объясняем на цифрах и примерах.