Rate limit para Craft CMS: Protege tu web contra ataques de fuerza bruta y abuso

Un plugin nativo para limitar peticiones HTTP por IP y proteger tu sitio Craft CMS de ataques y abuso
15.12.2025 — Liquid Team — 3 min read

La seguridad de una web es fundamental, especialmente cuando hablamos de proyectos desarrollados con Craft CMS. Uno de los vectores de ataque más comunes son los ataques de fuerza bruta y el abuso de peticiones HTTP, que pueden saturar tu servidor y comprometer el rendimiento de tu sitio. Para mitigar estos riesgos, hemos desarrollado Rate Limit, un plugin nativo para Craft CMS 5 que limita las peticiones por dirección IP.

Qué es el rate limiting y por qué lo necesitas

El rate limiting es una técnica de seguridad que restringe el número de peticiones que un cliente puede realizar en un período de tiempo determinado. Esta medida es esencial para:

• Prevenir ataques de fuerza bruta en formularios de login
• Mitigar ataques DDoS a pequeña escala
• Proteger APIs y endpoints de uso abusivo
• Reducir costes de servidor al evitar peticiones innecesarias
• Mantener la disponibilidad del sitio para usuarios legítimos

Características del plugin Rate Limit

Configuración flexible

El plugin permite definir el número máximo de peticiones permitidas por IP por minuto. El valor por defecto es de 4000 peticiones, pero puedes ajustarlo según las necesidades de tu proyecto. Un blog con poco tráfico puede usar valores más restrictivos (100-500), mientras que una aplicación con mucha interactividad puede requerir límites más altos.

Whitelist de IPs

No todas las IPs deben estar sujetas a limitación. El plugin incluye una lista blanca donde puedes excluir:

• IPs individuales: útil para servicios de monitorización o tu propia oficina
• Rangos CIDR: para excluir subredes completas (ej: 192.168.1.0/24)

Dashboard de monitorización

El panel de control integrado en el CP de Craft muestra estadísticas de las peticiones bloqueadas, permitiéndote identificar patrones de ataque y ajustar la configuración según sea necesario.

Integración nativa con Craft

El plugin utiliza el sistema de cache nativo de Craft CMS, lo que significa que no requiere dependencias externas como Redis o Memcached (aunque los soporta si ya los tienes configurados). La instalación es sencilla y no impacta el rendimiento de tu aplicación.

Cómo funciona

Cuando llega una petición HTTP, el plugin:

1. Obtiene la IP del visitante
2. Comprueba si está en la whitelist
3. Consulta el contador de peticiones en cache
4. Si supera el límite, responde con un error HTTP 429 (Too Many Requests)
5. Registra la petición bloqueada para su análisis

Las ventanas de tiempo se reinician cada minuto, lo que permite a los usuarios legítimos que hayan sido bloqueados temporalmente recuperar el acceso rápidamente.

Instalación

Puedes instalar el plugin directamente desde el Plugin Store de Craft CMS o mediante Composer:

composer require liquidbcn/craftcms-rate-limit
php craft plugin/install rate-limit

Después de la instalación, accede a Configuración > Plugins > Rate Limit para ajustar los parámetros según tus necesidades.

Configuración mediante archivo

Para proyectos con múltiples entornos, puedes crear el archivo config/rate-limit.php:

<?php
return [
    'enabled' => true,
    'maxRequestsPerIpPerMinute' => 500,
    'excludedIps' => [
        '127.0.0.1',
        '10.0.0.0/8',
    ],
];

Requisitos

• Craft CMS 5.0 o superior
• PHP 8.2 o superior

Descarga el plugin

Rate Limit está disponible de forma gratuita en el Plugin Store oficial de Craft CMS:

https://plugins.craftcms.com/rate-limit

💡 ¿Cuánto cuesta desarrollar una app para tu negocio? Ver precios