Это очень старый вопрос, но я надеюсь, что эта ссылка поможет кому-то еще.
Теперь мы используем ' API Protector .NET ' (https://apiprotector.net) для защиты наших API от атак DoS и DDoS.
Это библиотека, совместимая с MVC, WebApi и .NetCore , которая дала нам очень хорошие результаты , оба в простоте , но в основном в ремонтопригодность . С помощью этой библиотеки вы можете защитить каждую функцию вашего API буквально одной строкой и совершенно особым образом.
Как объясняется на сайте API Protector .NET:
Если вы ограничите свой API, как правило, N запросами на IP или на
пользователю достаточно, чтобы эти N запросов можно было постоянно использовать
воздействовать на ту же конкретную тяжелую функцию, которая может серьезно замедлить
весь сервис.
«Каждая функция вашего API должна быть ограничена в
конкретный способ в зависимости от нормальной частоты использования и стоимости
обработки, которую эта функция подразумевает для сервера, в противном случае
Вы не защищаете свой API. "
API Protector .NET позволяет защищать каждую функцию вашего .NET
API против DoS и DDoS-атак без усилий, в простой,
декларативный и обслуживаемый способ.
Единственный минус в том, что стоит 5 * 1030 долларов США, но он дал нам то, что мы искали, по очень низкой цене, в отличие от библиотеки WebApiThrottle, хотя это был первый вариант, который я попробовал (потому что это бесплатно), это оказалось практически неосуществимым, когда мы хотели защитить различные функции определенным образом (что важно для эффективной защиты, как объяснено).
API Protector .NET позволяет комбинировать различные защиты (по ip, пользователю, роли, в целом и т. Д.), Украшая каждую функцию одной строкой , что упрощает реализацию и поддерживать . Для подробного объяснения читайте: https://apiprotector.net/how-it-works
Интересным анекдотом является то время, когда , когда мы все еще защищали наши API с помощью WebApiThrottle , мы провели несколько тестов, имитирующих DDoS-атаки, с множеством параллельных запросов от разных хостов и по какой-то причине (я думаю, это связано с чем-то, связанным с синхронизацией потоков), в функции поступили пакеты запросов, и позднее, когда сервер уже перегружен, началось регулирование. Это, в дополнение к трудной ремонтопригодности, не давало нам особой уверенности в надежной защите, и поэтому мы в итоге попробовали эту альтернативу, которая хорошо работает.