Jaki jest najlepszy sposób zaimplementowania algorytmu ograniczającego szybkość dla żądań internetowych?

Możliwe / częściowe duplikaty:

Jaki jest dobry algorytm ograniczania stawek?Ograniczanie wywołań metod do żądań M w N sekundachNajlepszy sposób na zaimplementowanie ograniczania żądań w ASP.NET MVC?

Szukam najlepszego sposobu wdrożenia algorytmu ograniczania szybkości ruchomych okien czasowych dla aplikacji internetowej w celu ograniczenia spamu lub ataków siłowych.

Przykładami użycia byłyby „Maksymalna liczba nieudanych prób logowania z danego IP w ciągu ostatnich 5 minut”, „Maksymalna liczba (postów / głosów / etc ...) w ostatnich N minutach”.

Wolałbym raczej używać algorytmu ruchomego okna czasu niż twardego resetowania statystyk co X minut (jak np. Twitter Twitter).

Byłoby to dla aplikacji C # / ASP.Net.

questionAnswers(5)

yourAnswerToTheQuestion