Cómo restringir el acceso del cliente al WebService
Los ataques CC generalmente utilizan una cantidad limitada de IP para enviar datos con frecuencia al servidor para lograr el propósito del ataque. nginx puede limitar la cantidad de accesos IP al mismo tiempo configurando HttpLimitReqModul y HttpLimitZoneModule para evitar CC. ataques.
HttpLimitReqModul es un módulo utilizado para limitar el número de conexiones por unidad de tiempo. Utiliza las directivas limit_req_zone y limit_req en combinación para implementar límites. Una vez que el número de conexiones simultáneas exceda el número especificado, se devolverá un error 503.
HttpLimitConnModul se utiliza para limitar el número de conexiones simultáneas de una única IP, utilizando las instrucciones limit_zone y limit_conn.
La diferencia entre estos dos módulos es que el primero limita el número de conexiones dentro de un período de tiempo, mientras que el segundo limita el número de conexiones dentro de un período de tiempo, mientras que el segundo limita el número de conexiones dentro del mismo período
Contenido del artículo
1 HttpLimitReqModul Ejemplo de limitación del número de accesos desde una misma IP en un período de tiempo
2 HttpLimitZoneModule Ejemplo de limitación del número de conexiones simultáneas Ejemplo de limitación del número de conexiones simultáneas
3 nginx whitelist
HttpLimitReqModule Limitación del número de accesos desde la misma IP en un período de tiempo Ejemplo
httpLimitReqModule Ejemplo de limitación del número de visitas desde la misma IP en un período de tiempo
http{
...
#Defina una limit_req_zone llamada allips para almacenar sesiones, el tamaño es 10 M de memoria,
#Use $ binario_remote_addr como clave, limite el promedio de solicitudes por segundo a 20,
#1M puede almacenar 16000 estados. El valor de rete debe ser un número entero.
#1M puede almacenar 16000 estados. El valor de rete debe ser un número entero.
#1M puede almacenar 16.000 estados.
El valor de rete debe ser un número entero,
#Si el límite es una solicitud cada dos segundos, se puede establecer en 30r/m
limit_req_zone $binary_remote_addr zona=allips: 10m tasa=20r/s;
...
servidor{
...
ubicación {
...
#Limitar a no más de 20 solicitudes por ip por segundo, con un número de depósito con fugas de 5
#Brust significa que si en el primer segundo, el segundo segundo, hay 19 solicitudes en el tercer y cuarto segundo,
# Esto permite 25 solicitudes en el quinto segundo.
#Pero si hay 25 solicitudes en el primer segundo, entonces más de 20 solicitudes en el segundo segundo devolverán un error 503.
#nodelay, si no se configura esta opción, el número de solicitudes estará estrictamente limitado por la tarifa promedio,
#Cuando hay 25 solicitudes en el primer segundo, 5 solicitudes se ejecutará en el segundo segundo,
#Set nodelay y se ejecutarán 25 solicitudes en el primer segundo.
limit_req zona=allips burst=5 nodelay;
...
}
...
}
...