DocumentaciónGuía para DesarrolladoresSeguridad, Protección y Límite de Peticiones (Rate Limiting)

Seguridad, Validación Estricta y Limitación de Peticiones (Rate Limiting)

Protege tu tienda contra ataques DDoS, intentos de fuerza bruta y bots maliciosos mediante algoritmos avanzados en Redis.


1. Arquitectura de Limitación de Peticiones con Redis

Las solicitudes entrantes por IP se evalúan sin latencia en la memoria ultra rápida de Redis usando el algoritmo de Ventana Deslizante (Sliding Window).

  • Rutas Sensibles de API: Para evitar ataques de fuerza bruta, las peticiones de autenticación y pago se limitan a 5 por minuto.
  • Navegación General: Límites amplios que permiten a los usuarios navegar y consultar productos con total fluidez.

2. Políticas de Seguridad y Protección en el Edge con Caddy

El servidor Caddy actúa como primera línea defensiva con cifrado automático TLS 1.3 y certificados SSL gestionados.

Protección en Rutas de Pago

Seguridad de Nivel Bancario

Aislamiento de endpoints de pago y validación criptográfica de firmas en webhooks entrantes.

Saneamiento y Validación de Entradas

Esquemas Estrictos con Zod

Validación de formularios con Zod para prevenir inyecciones SQL y ataques Cross-Site Scripting (XSS).

Implementación de Rate Limiting en Rutas de API
typescript
// ── OTP request: phone (POST /auth/customer/phone-auth) ───────────────
{
method: "POST",
matcher: "/auth/customer/phone-auth",
middlewares: [
createRateLimitMiddleware({
maxAttempts: 3,
windowMs: 60 * 60 * 1000, // 1 hour
countOn: "success", // only count actual OTP sends
message: "Too many OTP requests. Please try again later.",
}),
],
},
// ── OTP register: phone ───────────────────────────────────────────────
{
method: "POST",
matcher: "/auth/customer/phone-register",
middlewares: [
createRateLimitMiddleware({
maxAttempts: 5,
windowMs: 30 * 60 * 1000, // 30 minutes
countOn: "failure", // only penalize wrong codes
message: "Too many failed attempts. Please try again later.",
}),
],
},
Ventajas del Almacenamiento en Memoria de Redis
El contador de peticiones se almacena en la RAM de Redis dentro de Docker, garantizando comprobaciones en microsegundos incluso bajo alto tráfico.