Однако одновременно с «хорошими» ботами в интернете появилось много «плохих» — тех, кто игнорирует общепринятые правила поведения.
Такие боты не обращают внимания на файл robots.txt, в котором указано, какие страницы сайта можно индексировать, а какие — нет. Они заходят на сайт с тысяч разных IP-адресов, чтобы затруднить их блокировку. Кроме того, они делают слишком много запросов за короткое время, не заботясь о нагрузке на сервер. Некоторые из них даже маскируются под обычных пользователей, чтобы обойти защиту.
В результате сайт начинает испытывать серьёзные проблемы: падает скорость работы, появляются сбои, увеличивается нагрузка на процессор и диск. Системные администраторы вынуждены тратить время на борьбу с этими ботами, вместо того чтобы заниматься развитием и улучшением проекта. В ряде случаев действия таких ботов можно считать вредоносными, потому что они наносят реальный ущерб.
Что такое zip-бомба и как она работает
В попытке защититься от агрессивных ботов некоторые администраторы предлагают нестандартные решения. Одним из таких методов стала так называемая «zip-бомба». Это способ намеренно «нагрузить» бота, отвечая ему данными, которые при распаковке требуют огромного количества ресурсов.
Принцип действия прост: бот запрашивает страницу, а сервер вместо обычного содержимого отсылает специально сжатый файл, например, с использованием метода deflate. На первый взгляд — это всего лишь несколько мегабайт. Но когда бот попытается распаковать данные, ему потребуется в десятки и сотни раз больше дискового пространства и оперативной памяти. Например, 10 мегабайт данных, сжатых из /dev/zero, при распаковке могут превратиться в 1 гигабайт. А с использованием более эффективного алгоритма brotli удалось достичь результата, при котором переданные 81 мегабайт превращаются в 100 терабайт распакованных данных. Это может серьёзно замедлить или даже «сломать» бота, особенно если он работает на слабом сервере.
Как применяют такую защиту
Обычно zip-бомбы размещают в «ловушках» — специальных страницах, которые обычные пользователи не видят и на которые невозможно перейти через навигацию сайта. Они доступны по ссылкам с атрибутом rel="nofollow"и указаны в файле robots.txt как запрещённые для индексации. Однако агрессивные боты игнорируют эти ограничения и переходят по таким ссылкам.
Также ловушки могут активироваться только при высоком уровне рекурсии, то есть если бот за короткое время открывает слишком много страниц подряд. Это позволяет отсеять случайных пользователей и сработать именно на злоумышленников.
Почему zip-бомбы — не лучшее решение
Несмотря на всю креативность метода, его использование в реальной практике вызывает много споров. Прежде всего, потому что это может привести к негативным последствиям для самого сайта. Например, если Google обнаружит подозрительное поведение — передачу вредоносных или перегружающих данных — сайт может попасть в чёрный список. В браузере Chrome с включённой защитой Safe Browsing такой сайт будет отмечаться как опасный. Это может отпугнуть посетителей, подорвать доверие и даже повлиять на поисковую выдачу.
Поэтому большинство специалистов не рекомендуют использовать zip-бомбы как способ борьбы с ботами. Вместо этого лучше применять более традиционные методы защиты: ограничение частоты запросов, фильтрацию по IP, поведенческий анализ и использование сервисов защиты от DDoS.