Wie lässt sich ein Algorithmus zur Geschwindigkeitsbegrenzung für Webanforderungen am besten implementieren?

Mögliche / teilweise Duplikate:

Was ist ein guter Algorithmus zur Ratenbegrenzung?Drosselmethodenaufrufe für M-Anforderungen in N SekundenBester Weg, um Anforderungsdrosselung in ASP.NET MVC zu implementieren?

Ich suche nach der besten Möglichkeit, einen Algorithmus zur Begrenzung der Bewegungszeitfensterrate für eine Webanwendung zu implementieren, um Spam- oder Brute-Force-Angriffe zu reduzieren.

Beispiele für die Verwendung sind "Maximale Anzahl fehlgeschlagener Anmeldeversuche von einer bestimmten IP-Adresse in den letzten 5 Minuten", "Maximale Anzahl (Beiträge / Stimmen / etc ...) in den letzten N Minuten".

Ich würde es vorziehen, einen Algorithmus für sich bewegende Zeitfenster zu verwenden, anstatt die Statistiken alle X Minuten hart zurückzusetzen (wie z. B. Twitter API).

Dies wäre für eine C # / ASP.Net-App.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage