¿Cómo evitar la denegación de servicio (CWE-400) en el servidor HTTP Node.js?

Como Evitar La Denegacion De Servicio Cwe 400 En El Servidor Http Node Js



Con la evolución de la tecnología en todos los campos, las posibilidades de pérdida de datos y ataques cibernéticos también han mejorado. Las nuevas tecnologías juegan un papel vital en el campo del desarrollo ético y de la misma manera, estas tecnologías también pueden usarse para realizar acciones poco éticas de una manera más precisa y sencilla. Uno de esos ataques que puede realizar un hacker es ' Denegación de servicio (CWE-400) ”.

Esta guía explica el procedimiento para evitar la denegación de servicio CWE-400 en el servidor HTTP de Nodejs.







¿Qué es la denegación de servicio del servidor HTTP (CWE-400)?

La denegación de servicio (CWE-400) es un intento del atacante de hacer que una aplicación no esté disponible para los usuarios originales inundando la aplicación con tráfico de bots. Este ataque también se realiza explotando las vulnerabilidades residentes de la aplicación para hacerla mucho más lenta.



¿Son las aplicaciones Node Js vulnerables a ataques maliciosos?

Sí, las aplicaciones Node.js pueden ser vulnerables a ataques maliciosos como cualquier otro software o aplicación. A continuación se detallan algunos de los tipos de ataques maliciosos más comunes y populares:



    • Ataques de denegación de servicio
    • Ataques de inyección
    • Ataques de secuencias de comandos entre sitios (XSS)
    • Ataques de secuestro de sesión

¿Cómo evitar la denegación de servicio (CWE-400) en el servidor HTTP Node.js?

Para evitar la denegación de servicio en el servidor HTTP de Node.js, se debe restringir la cantidad de solicitudes recibidas desde una única dirección IP dentro de un período de tiempo específico. De esta manera, se maneja el tráfico recibido a través de su aplicación y también existen otros métodos para mitigar la denegación de servicio (CWE-400) en Node.js.





Método 1: uso del limitador de velocidad

El limitador de velocidad es el mejor enfoque para prevenir específicamente el ataque de denegación de servicio, ya que puede limitar la cantidad de solicitudes que pueden llegar de cada solicitud por marco de ventana:

constante expObj = requerir ( 'expresar' ) ;
limitante constante = requerir ( 'límite-de-tasa-exprés' ) ;

constante demoApp = expObj ( ) ;

const cusLim = Limitante ( {
ventanaSra: 2 * 60 * 1000 , // 15 minutos
máx: 100 ,
} ) ;
demoApp.use ( cusLim ) ;

 
La descripción del código anterior es la siguiente:



    • Primero, instale e importe el “ expresar ' y ' límite de tarifa expresa ”en su proyecto Node Js usando el “ npm i 'comando y' requerir() ”método respectivamente.
npm expreso

 

    • A continuación, cree una aplicación rápida llamada ' aplicación de demostración ' y cree un limitador de velocidad asignando los valores requeridos para ' ventanasSra. ' y ' máximo 'propiedades del' límite de tarifa expresa ' objeto.
    • El ' ventanasSra. ' establece la duración del tiempo de la ventana y ' máximo ”establece la solicitud máxima que se puede recibir desde una única dirección IP por ventana.
    • Ahora, aplica el “ usar() 'Método que contiene el limitador de velocidad con el' aplicación de demostración ”aplicación para limitar la solicitud recibida por la aplicación “demoApp”.

Método 2: uso de métodos de tiempo de espera

El ' se acabó el tiempo 'Métodos como' establecerTiempo de espera() ”, “ encabezadosTiempo de espera ”, “ pide tiempo fuera ”, “ se acabó el tiempo ', y ' mantener con vida el tiempo de espera() ”se utilizan para salir o finalizar el “ servidor http ”servidor. Esto evitará la Denegación de Servicio (CWE-400) al proporcionar un período mínimo de ventana abierta. Por ejemplo, la solicitud se eliminó o la ventana se cerrará después de ' 3 ' segundos:

servidor constante = http.createServer ( ( solicitar, res ) = > {
req.setTimeout ( 3000 ) ;
    // Solicitud de manejo
  } ) ;

 

Consejos adicionales para mitigar la denegación de servicio en Node Js

Hay algunos consejos adicionales que ayudan a mitigar la denegación de servicio (CWE-400) en el servidor HTTP de Nodejs, que se enumeran a continuación:

    • El ' Proxies inversos ”debe utilizarse para enviar o recibir solicitudes a la aplicación Node Js. Estos servidores proxy ofrecen almacenamiento en caché, equilibrio de carga y listas negras de IP, lo que ayuda mucho a mitigar el DoS (CWE-400).
    • El uso de una red de entrega de contenido “ CDN ”ayuda a prevenir el ataque DoS (CWE-400) dividiendo el código en varios fragmentos y cargándolos por separado en varios servidores.
    • El uso de un firewall de aplicaciones web” WAF ”protege su aplicación bloqueando solicitudes de una fuente maliciosa conocida.
    • La utilización de un “ Equilibrador de carga ”divide uniformemente una carga de solicitudes entre todos los servidores, evitando que un solo servidor se sobrecargue.

Nota: También puede consultar la documentación auténtica de Node.js para obtener más información sobre Denegación de servicio (CWE-400) .

Se trata de la prevención de la denegación de servicio (CWE-400) en el servidor HTTP Node.js.

Conclusión

Para evitar la denegación de servicio (CWE-400) en el servidor HTTP Node.js, utilice la opción ' Limitador de velocidad ”, “ Métodos de tiempo de espera ”, “ Proxies inversos ”, “ CDN ”, “ WAF ' y ' Equilibrador de carga “Técnicas. Limitan la cantidad de solicitudes, cierran la ventana de solicitud, redirigen la solicitud a otro sitio web, dividen y cargan el código original en varios servidores y equilibran la carga en cada servidor respectivamente. Esta guía rápida ha ilustrado el proceso para mitigar o prevenir la Denegación de Servicio (CWE-400) en el servidor HTTP Node.js.