Как ограничить скорость API node.js, использующего JWT?

У меня есть приложение node.js, которое работает на разных серверах/контейнерах. Клиенты аутентифицируются с помощью токенов JWT. Я хочу защитить этот API от DDos-атак. Настройки лимита использования пользователя могут храниться в токене. Я думал о некоторых подходах:

  • Увеличивайте счетчики в базе данных памяти, такой как redis или memcached, и проверяйте их при каждом запросе. Может вызвать узкие места?
  • Сделайте что-нибудь на сервере nginx (возможно ли это?)
  • Используйте какое-нибудь облачное решение (AWS WAF? Cloudfront? API Gateway? Делают ли они то, что я хочу?)

Как это решить?


person Eduardo    schedule 11.04.2019    source источник
comment
rate-limiter-flexible помогает с первым вариантом npmjs.com/package/rate-limiter-flexible   -  person Animir    schedule 17.10.2019


Ответы (1)


Существуют специальные npm пакеты, такие как

Я не знаю насчет AWS, но в Azure вы можете использовать Azure API Management для защиты вашего API https://docs.microsoft.com/en-us/azure/api-management/api-management-key-concepts

person Łukasz Szewczak    schedule 12.04.2019