Как можно создать повышенную нагрузку на поведенческого бота на сайте?

Как можно настроить вычисления на стороне пользователя таким образом, чтобы нагрузить ботов и снизить их активность на сайте?
  • 9 февраля 2024 г. 10:18
Ответы на вопрос 2
Создание повышенной нагрузки на поведенческого бота на сайте обычно не является желательной практикой, так как это также может негативно сказаться на работе сайта для реальных пользователей. Однако, если ваша цель заключается в защите сайта от вредоносной активности ботов, есть несколько техник, которые могут помочь усложнить работу ботам и снизить их эффективность без создания чрезмерной нагрузки на сервер или на опыт реальных пользователей:

1. CAPTCHA и ReCAPTCHA: Это верификационные задачи, которые сложно автоматизировать и требуют человеческого взаимодействия для их выполнения.

2. JavaScript-вызовы: Усложнение работы ботов можно осуществлять с помощью JS-скриптов, которые требуют выполнения определенных операций (например, вычисления хешей) перед выполнением каких-либо действий на сайте. Это создает дополнительную нагрузку на процессорную мощность бота, особенно если таких задач будет много.

3. Поведенческие аналитики: Анализ активности пользователей на сайте позволяет определять неестественное или подозрительное поведение и блокировать ботов на основе этой информации.

4. Блокировка по IP и анализ HTTP-заголовков: Выявление и блокирование известных серверов и IP-адресов, которые используются для ведения ботов, а также анализ HTTP-заголовков на предмет подозрительных значений, может помочь ограничить доступ ботов к сайту.

5. Усложнение API и форм: Создание комплексных форм для ввода данных, которые требуют интерактивного подтверждения (например, выбор элемента из выпадающего списка, перемещения слайдера и т. д.), а также использование RESTful API с дополнительной аутентификацией и токенами, препятствует автоматизации процессов ботами.

6. Rate limiting: Ограничение скорости выполнения запросов к ресурсам сайта для одного пользователя в определенный промежуток времени помогает снизить интенсивность ботов.

7. Поддельные поля в формах: Размещение на формах скрытых полей, которые обычные пользователи не видят и не заполняют, но которые боты могут заполнять, позволяет отличить автоматизированный трафик от человеческого.

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

Развитие этого вопроса - плавно приводит к нарушению законов . Например, например
что можем сделать с несчастным владельцем бота, зная его IP. Развивать не будем.
Пускай будет просто http-responce. Я думаю модератор одобрит сухое перечисление
с чисто академическим интересом.

- Отдавать боту безсмысленный трафик. Набор непарсящегося по html содержимого. (/dev/random)
- Отдавать мееееедленно контент. Еще медленнее....
- Отдать майнер или любой JS который создает безсмысленную нагрузку.
- Отдеть веб-ассембли создающую нагрузку.
- Отдать gzip-бомбу (сжатый трафик который переполняет память при распаковке (очень быстро))
- Отдать xml-бомбу (очень старая уязвимость XML/DTD которая не везде работает)
- Отдать png/gif картинки переполняющие память при открытии.

В конечном счете эффект от этих сюрпризов будет сильно зависеть от самого бота. Я подозреваю
что никакого эффекта в целом не будет. От игнора содержимого до незначительных ошибок и
резкого закрытия соединения.
Похожие вопросы