Si desea engañar al usuario infractor para que piense que todavía está pasando desapercibido para usted, puede usar el módulo de límite de solicitud de nginx ( http://wiki.nginx.org/HttpLimitReqModule ).
Primero defina una zona límite de solicitud:
http {
limit_req_zone $binary_remote_addr zone=spammers:1m rate=30r/m;
}
Esta zona utilizará la dirección IP del delincuente para identificar y limitar las solicitudes a 30 por minuto (1/2 segundo). Tenga en cuenta que el tamaño de la memoria de la zona está establecido en 1 MiB, lo que significa que puede manejar 1 MiB / 64 bytes por bucket de solicitud = 16384 direcciones de spammer (lo que puede ser una exageración para nuestro caso). Ajuste respectivamente, si es necesario.
A continuación, definimos la directiva que realmente dirigirá al delincuente a través del limitador usando un (mal, desafortunadamente) si es el caso:
location / {
if ($remote_addr = 1.2.3.4) {
limit_req zone=spammer burst=5;
}
}
Puede ver los frutos de su trabajo en el registro de acceso del servidor.
Tenga en cuenta que este truco no se escala bien, ya que tendrá que actualizar el archivo de configuración cada vez que el delincuente cambie de IP (y mucho menos incluir más IP allí, lo que significa más si los casos), pero funciona.