Защита от ботов. Настройка блокировки частых запросов по 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

Это снижение стоимости владения

за счет меньшего количества людей для поддержки и узкого стека разработки. Про снижение стоимости владения продуктом

Это быстрое внесение изменений

по ходу эксплуатации программы. Как создается функционал на платформе

Это простой удобный интерфейс

адаптация под мобильные устройства. Про юзабилити платформы