RateLimit
Configuración, respuesta y tipo de limite de peticiones especificados
Visión General
La clase RateLimitManager
es un singleton que maneja la limitación de tasa y el bloqueo de IPs para una aplicación Express.js. Proporciona:
Configuración predeterminada de limitación de tasa
Creación de limitadores personalizados
Bloqueo de IPs por violaciones repetidas
Sistema de notificaciones para violaciones
Niveles de limitación basados en licencias
Diagrama de Clase
Constructor
private constructor()
Inicializa el RateLimitManager con configuración predeterminada.
Configuración del Limitador Predeterminado:
Métodos
getInstance()
Obtiene la instancia singleton de RateLimitManager.
Retorna: RateLimitManager
- La instancia singleton
Ejemplo:
getDefaultLimiter()
Obtiene el middleware de limitación de tasa predeterminado.
Retorna: any
- El middleware de limitación predeterminado
Ejemplo:
createCustomLimiter(options)
Crea un limitador de tasa personalizado con opciones específicas.
Retorna: any
- El middleware de limitación personalizado
Ejemplo de Opciones:
recordRateLimitViolation(ip, endpoint)
Registra una violación de límite de tasa en la base de datos y envía notificaciones.
Retorna: Promise<void>
Esquema de Base de Datos:
Carga de Notificación:
getViolationCount(ip)
Obtiene el conteo de violaciones de límite de tasa para una IP en las últimas 24 horas.
Retorna: Promise<number>
- Conteo de violaciones
Notificación Crítica (≥3 violaciones):
getRateLimitMiddleware(req, res, next)
Middleware que aplica limitación de tasa basada en tipo de licencia o configuración predeterminada.
Niveles de Licencia: (Detalles de implementación específicos)
Configuración
La clase usa configuración de config.moderation.notifications
:
Manejo de Errores
Todos los métodos incluyen bloques try-catch y registran errores usando:
Ejemplos de API
Respuesta Predeterminada por Límite de Tasa (429)
Respuesta de IP Bloqueada (403)
Ejemplo de Notificación por Webhook
Last updated