Ограничение скорости для предотвращения атаки DOS (Heroku) - PullRequest
4 голосов
/ 23 октября 2011

В моем приложении 2 API POST, 1 PUT и 1 DELETE. Мое приложение развернуто на Heroku. Я хочу ограничить скорость этих API, но только для предотвращения атаки DOS или в случае, если кто-то по ошибке вызовет API в бесконечном цикле. Какой идеальный предел скорости для этого сценария. Например. х в минуту, у в час. Каковы числа идей для х и у?

Ответы [ 2 ]

3 голосов
/ 06 июня 2012

Один из способов сделать это - добавить плагин 3scale API (https://github.com/3scale/3scale_ws_api_for_ruby), и это обеспечивает ограничение скорости, выполняет аналитику и т. Д. С использованием внешней инфраструктуры.

Таким образом, вы можете ограничить скорость отдельныхпользователи и имеют разные квоты для каждого (плюс все регистрации и т. д.).

Это не будет строго препятствовать истинному DOS, потому что даже неавторизованный запрос все равно достигнет вас - но он не даст им перейти в вашстек + отрезать людей, которые наносят урон первыми.

0 голосов
/ 24 октября 2011

Это действительно зависит от вашего приложения.

1) Это зависит от того, насколько «тяжелым» является ваше приложение:

Если каждый из ваших запросов перегружен процессором и / или сильно поражает вашу базу данных, тогда вы захотите установить нижний предел, потому что каждый запрос «дорогой». Если ваше приложение быстрое и эффективное, у вас есть больше возможностей для маневра, и вы можете установить более высокий лимит API.

2) Это зависит от вариантов использования вашего приложения.

Требует ли ваше приложение много попаданий API, чтобы его можно было использовать? Как лимит API влияет на функции, предоставляемые вашим приложением?

3) Это зависит от того, сколько у вас процессоров.

Heroku позволяет масштабировать ваше приложение, устанавливая веб-динос и рабочие динос. Чем больше у вас есть, тем лучше вы сможете предложить высокие лимиты API.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...