Защита от ботов. Настройка блокировки частых запросов по IP

Различные внешние системы могут автоматически собирать данные с вашего сайта. Это может создавать большую нагрузку на сайт. Вы можете блокировать их активность на основе частоты запросов с определенного IP. 

В системе есть механизм, анализирующий частоту запросов от различных IP.  

Если запросов в минуту с определенного IP слишком много, то он блокируется на некоторое время. 

Настройки в web.config (или appsettings.json): 

  • security:requestsInMinuteLimit - если не пустое, то система анализа активности по IP включена для анализа страниц. Указывает максимальное количество обращений в минуту (имеются в виду загрузки страниц).  Если число запросов с определенного IP превышает этот лимит, то IP добавляется в черный список и в trace фиксируется данный IP с кодом blockIP (для лога и последующего анализа).
  • security:allRequestsInMinuteLimit - если не пустое, то система анализа активности по IP включена для анализа всех запросов к сайту. Указывает максимальное количество обращений в минуту.  Если число запросов с определенного IP превышает этот лимит, то IP добавляется в черный список и в trace фиксируется данный IP с кодом blockIP (для лога и последующего анализа). 
  • security:blockIPCacheMin - Список блокированных IP лежит в кеше приложения. Он очищается через количество минут, указанных в данном параметре (по умолчанию 20 минут). 

Не ставьте значение security:requestsInMinuteLimit слишком малым, иначе есть риск забанить нормальные запросы. Ставьте значение от 40-50. 

Если используете security:allRequestsInMinuteLimit - ставьте его не меньше 300-400. Иначе есть риск заблокировать пользователя,  у которого идет множество прогрузок на 1 странице (таблицы, формы, ресурсы и т.д.). 

Если пользователь или бот заблокирован, то он получает пустую страницу со словом denied. 

Примечание: 

  • Если ваше приложение использует множество пользователей с 1 IP, то необходимо значительно увеличивать этот лимит (не делать впритык на 1 пользователя).
  • По таблице трассировки можно понять возникают ли случаи блокировки IP (код blockIP). 
  • По умолчанию система блокировки отключена (т.е. настройки security:requestsInMinuteLimit нет, либо она пустая). 
Falcon Space - функциональная веб-платформа разработки на узком стеке MS SQL/Bootstrap. Вводная по Falcon Space
Насколько полезной была статья?

Google поиск по нашей документации

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Нужна бесплатная консультация?
Планируете делать веб-проект?
Сайт использует Cookie. Правила конфиденциальности OK