Возможные/частичные дубликаты:
- Какой хороший алгоритм ограничения скорости?
- Метод дросселирования вызывает M-запросы за N секунд
- Лучший способ реализовать настройку запроса в ASP.NET MVC?
Я ищу лучший способ реализовать алгоритм ограничения скорости движения по времени для веб-приложения, чтобы уменьшить атаки спама или грубой силы.
Примерами использования могут быть "Максимальное количество неудачных попыток входа в систему из заданного IP-адреса за последние 5 минут", "Максимальное количество сообщений (голосов/голосов и т.д.) за последние N минут".
Я бы предпочел использовать алгоритм временного окна, а не жесткий reset статистики каждые X минут (например, twitter api).
Это будет для приложения С#/ASP.Net.