Подтвердить что ты не робот

Как предотвратить DoS-атаку в приложениях ASP.NET MVC?

Я не хочу, чтобы кто-то держал F5 на моем сайте или использовал какой-либо инструмент, чтобы часто запрашивать страницу.

То есть, предотвращать действие Action или Controller часто одним клиентом.

Как я могу это реализовать? Есть ли какой-либо пакет, который я могу использовать? как библиотека AntiXSS.

4b9b3361

Ответ 1

Большинство этих функций можно найти в менеджере IIS. Нечто вроде Динамические ограничения IP должно помочь. Прочитайте с помощью Microsoft Best Practices для предотвращения DoS/DoS-атак, это дает хороший список дел.

Также в соответствии с этим видео, Cloud Flare может предотвратить эти атаки с их бесплатным сервисом.

Ответ 2

Это очень старый вопрос, но я надеюсь, что эта ссылка поможет кому-то еще.

Теперь мы используем 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 долларов США, но он дал нам то, что мы искали, по очень низкой цене, в отличие от библиотеки WebApiThrottle, которая, хотя это был первый вариант, который я попробовал (потому что он бесплатный), в итоге оказалась нецелесообразно неосуществимо, когда мы хотим защитить различные функции определенным образом (что очень важно для эффективной защиты, как объяснено).

API Protector.NET позволяет комбинировать различные средства защиты (по ip, по пользователю, по роли, в целом и т.д.), Выделяя каждую функцию одной строкой, что упрощает внедрение и обслуживание. Для подробного объяснения читайте: https://apiprotector.net/how-it-works

Интересным анекдотом является то, что в то время, когда мы все еще защищали наши API с помощью WebApiThrottle, мы провели несколько тестов, имитирующих DDoS-атаки, с множеством параллельных запросов от разных хостов и по какой-то причине (я думаю, это связано с чем-то, связанным с синхронизацией потоков), к функциям пришли пакеты запросов, и поздно, когда сервер уже перегружен, началось регулирование. Это, в дополнение к трудной ремонтопригодности, не давало нам слишком много уверенности для надежной защиты, и именно поэтому мы закончили тем, что попробовали эту альтернативу, которая работает хорошо.