Hur förhindrar man Denial of Service (CWE-400) i Node.js HTTP Server?

Hur Forhindrar Man Denial Of Service Cwe 400 I Node Js Http Server



Med den tekniska utvecklingen inom alla områden har även chanserna för förlust av data och cyberattacker förbättrats. Ny teknik spelar en viktig roll inom området etisk utveckling och på samma sätt kan dessa teknologier också användas för att utföra oetiska handlingar på ett mer exakt och enkelt sätt. En sådan attack som kan göras av en hackare är ' Denial of Service (CWE-400) ”.

Den här guiden förklarar proceduren för att förhindra denial of service CWE-400 i Nodejs HTTP-server.







Vad är Denial of Service för HTTP-server (CWE-400)?

Denial of Service (CWE-400) är ett försök från angriparen att göra en applikation otillgänglig för ursprungliga användare genom att översvämma applikationen med bottrafik. Denna attack utförs också genom att exploatera applikationens befintliga sårbarheter för att göra applikationen mycket långsammare.



Är Node Js-applikationer sårbara för skadliga attacker?

Ja, Node.js-applikationer kan vara sårbara för skadliga attacker precis som vilken annan programvara eller applikation som helst. Några vanligaste och populäraste typer av skadliga attacker anges nedan:



    • Denial of Service-attacker
    • Injektionsattacker
    • Cross-Site Scripting (XSS) attacker
    • Sessionskapningsattacker

Hur förhindrar man Denial of Service (CWE-400) i Node.js HTTP Server?

För att förhindra denial of service i Node.js HTTP-server måste antalet förfrågningar som tas emot från en enskild IP-adress inom en angiven tidsram begränsas. På detta sätt hanteras den mottagna trafiken över din applikation och det finns även flera andra metoder för att mildra Denial of Service (CWE-400) i Node.js.





Metod 1: Användning av Rate Limiter

Hastighetsbegränsaren är den bästa metoden för att specifikt förhindra Denial-of-service-attacken, eftersom den kan begränsa antalet förfrågningar som kan komma från varje begäran per fönsterram:

const expObj = kräver ( 'uttrycka' ) ;
const Begränsande = kräver ( 'express-rate-limit' ) ;

const demoApp = expObj ( ) ;

const cusLim = Begränsande ( {
fönsterMs: 2 * 60 * 1000 , // femton minuter
max: 100 ,
} ) ;
demoApp.use ( cusLim ) ;


Beskrivningen av ovanstående kod är följande:



    • Installera och importera först ' uttrycka ' och ' uttrycklig räntegräns ' i ditt Node Js-projekt med hjälp av ' npm i ' kommando och ' behöva() ” metod respektive.
npm uttrycker jag


    • Skapa sedan en expressapplikation med namnet ' demoApp ' och skapa en hastighetsbegränsare genom att tilldela de nödvändiga värdena för ' windowsMs ' och ' max ' egenskaper för ' uttrycklig räntegräns ” objekt.
    • den ' windowsMs ' ställer in fönstrets tidslängd och ' max ” ställer in den maximala begäran som kan tas emot från en enda IP-adress per fönster.
    • Använd nu ' använda sig av() ”-metoden som innehåller hastighetsbegränsaren med ” demoApp ” applikation för att begränsa begäran som tas emot av applikationen ”demoApp”.

Metod 2: Användning av Timeout-metoder

den ' Paus 'metoder som' setTimeout() ', ' headersTimeout ', ' föreslå uppehåll ', ' Paus ', och ' keepAliveTimeout() ' används för att avsluta eller avsluta ' http-server 'server. Detta kommer att förhindra Denial of Service (CWE-400) genom att tillhandahålla en minsta tidsram för öppet fönster. Till exempel har begäran raderats eller så stängs fönstret efter ' 3 ' sekunder:

const server = http.createServer ( ( req, res ) = > {
req.setTimeout ( 3000 ) ;
// Hanteringsbegäran
} ) ;

Ytterligare tips för att mildra denial of service i Node Js

Det finns några ytterligare tips som hjälper till att mildra överbelastningen av tjänster (CWE-400) i Nodejs HTTP-server, dessa listas nedan:

    • den ' Omvända proxyservrar ” bör användas för att skicka eller ta emot förfrågningar till Node Js-applikationen. Dessa proxyservrar erbjuder cachning, lastbalansering och IP-svartlistning vilket hjälper mycket för att mildra DoS(CWE-400).
    • Användningen av ett nätverk för innehållsleverans ' CDN ” hjälper till att förhindra DoS(CWE-400)-attacken genom att dela upp koden i flera bitar och ladda upp dem separat på flera servrar.
    • Användningen av en brandvägg för webbapplikationer ' WAF ” skyddar din applikation genom att blockera förfrågningar från en känd skadlig källa.
    • Användningen av en ' Lastbalanserare ” fördelar en belastning av förfrågningar jämnt över alla servrar, vilket förhindrar att en enda server överbelastas.

Notera: Du kan också kontrollera den autentiska dokumentationen för Node.js för att få mer information om Denial of Service (CWE-400) .

Det handlar om förhindrandet av Denial of Service (CWE-400) i Node.js HTTP-server.

Slutsats

För att förhindra Denial of Service (CWE-400) i Node.js HTTP Server, använd ' Prisbegränsare ', ' Timeout-metoder ', ' Omvända proxyservrar ', ' CDN:er ', ' WAF ' och ' Lastbalanserare ' tekniker. De begränsar antalet förfrågningar, stänger förfrågningsfönstret, omdirigerar förfrågan till en annan webbplats, delar upp och laddar upp originalkoden i flera servrar och balanserar belastningen över respektive server. Denna snabbguide har illustrerat processen för att mildra eller förhindra Denial of Service (CWE-400) i Node.js HTTP-server.