2016-05-23 1 views
3

Не уверен, что я прав, но предположим, что у меня есть REST API и конечная точка, которая, например, создает некоторый ресурс, позволяет @POST создать пользователя.Как избежать злоупотребления вашим REST API? блокировать многие вызовы от одного и того же клиента JAX-RS (Dropwizard)

Как защитить мое приложение от пользователей, которые делают for-loop с похожими вызовами 10000 API для создания бесполезных ресурсов?

Можно ли написать фильтр, блокирующий такое поведение? Надеюсь, ты понимаешь, о чем я.

+0

@KevinB это проблема программирования, если вы рассмотрите систему оценки/оценки на уровне приложений (или даже на уровне сервера). – strangeqargo

+1

Похоже, вы хотите что-то вроде [фильтра утечки ковша] (https://en.wikipedia.org/wiki/Leaky_bucket) или что-то подобное. Мы реализовали что-то подобное с использованием учетных данных авторизации, которые мы кэшируем на карте вытеснения. Если получено более n запросов от одного и того же клиента за определенный промежуток времени, мы отвечаем с ошибкой на последовательные запросы, пока кэш не имеет хотя бы места для еще одного запроса. Хотя для упрощения вы также можете использовать фиксированный таймер и очищать кеш каждые n минут автоматически –

ответ

-1

Я согласен с ответом @ strangeqargo. Если вы не хотите реализовывать это самостоятельно, есть несколько служб, которые будут анализировать запросы и рекомендовать, блокировать их или нет, у меня был неплохой опыт работы с ShieldSquare

Смежные вопросы