¿Cuál es la mejor manera de implementar un algoritmo de limitación de velocidad para las solicitudes web?

Posibles duplicados / parciales:

¿Qué es un buen algoritmo de limitación de velocidad?Método de limitación de llamadas a M solicitudes en N segundos¿La mejor manera de implementar la regulación de solicitudes en ASP.NET MVC?

Estoy buscando la mejor manera de implementar un algoritmo de limitación de velocidad de ventana de tiempo móvil para una aplicación web para reducir el spam o los ataques de fuerza bruta.

Ejemplos de uso serían "Número máximo de intentos fallidos de inicio de sesión desde una IP determinada en los últimos 5 minutos", "Número máximo de (mensajes / votos / etc ...) en los últimos N minutos".

Preferiría usar un algoritmo de ventana de tiempo móvil, en lugar de un restablecimiento completo de las estadísticas cada X minutos (como la API de Twitter).

Esto sería para una aplicación C # / ASP.Net.

Respuestas a la pregunta(5)

Su respuesta a la pregunta