Hvordan forhindre tjenestenekt (CWE-400) i Node.js HTTP Server?

Hvordan Forhindre Tjenestenekt Cwe 400 I Node Js Http Server



Med utviklingen av teknologi på alle felt har også sjansene for tap av data og cyberangrep blitt bedre. Nye teknologier spiller en viktig rolle innen etisk utvikling, og på samme måte kan disse teknologiene også brukes til å utføre uetiske handlinger på en mer nøyaktig og enkel måte. Et slikt angrep som kan gjøres av en hacker er ' Denial of Service (CWE-400) '.

Denne veiledningen forklarer prosedyren for å forhindre tjenestenekt CWE-400 i Nodejs HTTP-server.







Hva er Denial of Service for HTTP-server (CWE-400)?

Denial of Service (CWE-400) er et forsøk fra angriperen på å gjøre en applikasjon utilgjengelig for originale brukere ved å oversvømme applikasjonen med bottrafikk. Dette angrepet utføres også ved å utnytte de eksisterende sårbarhetene til applikasjonen for å gjøre applikasjonen mye tregere.



Er Node Js-applikasjoner sårbare for ondsinnede angrep?

Ja, Node.js-applikasjoner kan være sårbare for ondsinnede angrep akkurat som all annen programvare eller applikasjon. Noen mest vanlige og populære typer ondsinnede angrep er angitt nedenfor:



    • Denial of Service-angrep
    • Injeksjonsangrep
    • Cross-Site Scripting (XSS) angrep
    • Sesjonskapringangrep

Hvordan forhindre tjenestenekt (CWE-400) i Node.js HTTP-server?

For å forhindre tjenestenekt i Node.js HTTP-server, må antallet forespørsler mottatt fra en enkelt IP-adresse innenfor en spesifisert tidsramme begrenses. På denne måten blir den mottatte trafikken over applikasjonen din håndtert, og det finnes også forskjellige andre metoder for å redusere tjenestenekten (CWE-400) i Node.js.





Metode 1: Bruk av ratebegrenser

Hastighetsbegrenseren er den beste tilnærmingen for å spesifikt forhindre tjenestenektangrepet, siden den kan begrense antallet forespørsler som kan komme fra hver forespørsel per vindusramme:

const expObj = krever ( 'uttrykke' ) ;
const Begrensende = krever ( 'express-rate-limit' ) ;

const demoApp = expObj ( ) ;

const cusLim = Begrensende ( {
vinduMs: 2 * 60 * 1000 , // femten minutter
maks: 100 ,
} ) ;
demoApp.bruk ( cusLim ) ;


Beskrivelsen av koden ovenfor er som følger:



    • Først installer og importer ' uttrykke ' og ' ekspresstakstgrense ' i ditt Node Js-prosjekt ved å bruke ' npm i ' kommando og ' krever() henholdsvis 'metoden.
npm jeg uttrykker


    • Deretter oppretter du en ekspressapplikasjon kalt ' demoApp ' og lag en hastighetsbegrenser ved å tilordne de nødvendige verdiene for ' windowsMs ' og ' maks ' egenskapene til ' ekspresstakstgrense ' objekt.
    • « windowsMs ' stiller inn vinduets varighet og ' maks ” angir maksimal forespørsel som kan mottas fra en enkelt IP-adresse per vindu.
    • Bruk nå ' bruk() '-metoden som inneholder hastighetsbegrenseren med ' demoApp '-applikasjon for å begrense forespørselen mottatt av 'demoApp'-applikasjonen.

Metode 2: Bruk av tidsavbruddsmetoder

« pause 'metoder som' setTimeout() ', ' headersTimeout ', ' requestTimeout ', ' pause ', og ' keepAliveTimeout() ' brukes til å avslutte eller avslutte ' http-server 'server. Dette vil forhindre tjenestenekt (CWE-400) ved å gi en minimumsperiode for åpent vindu. For eksempel er forespørselen slettet eller vinduet vil bli lukket etter ' 3 ' sekunder:

const server = http.createServer ( ( krav, res ) = > {
req.setTimeout ( 3000 ) ;
// Håndtering av forespørsel
} ) ;

Ytterligere tips for å redusere tjenestenekten i Node Js

Det er noen tilleggstips som hjelper til med å redusere tjenestenekten (CWE-400) i Nodejs HTTP-server, disse er oppført nedenfor:

    • « Omvendte proxyer ” bør brukes til å sende eller motta forespørsler til Node Js-applikasjonen. Disse proxyene tilbyr caching, lastbalansering og IP-svartelisting som hjelper mye med å redusere DoS(CWE-400).
    • Bruken av et innholdsleveringsnettverk ' CDN ” bidrar til å forhindre DoS(CWE-400)-angrepet ved å dele koden i flere biter og laste dem opp separat på flere servere.
    • Bruken av en nettapplikasjonsbrannmur ' WAF ” beskytter applikasjonen din ved å blokkere forespørsler fra en kjent ondsinnet kilde.
    • Bruken av en ' Load Balancer ” fordeler en belastning av forespørsler jevnt over alle servere, og forhindrer at en enkelt server blir overbelastet.

Merk: Du kan også sjekke den autentiske dokumentasjonen til Node.js for å få mer informasjon om Denial of Service (CWE-400) .

Det handler om forebygging av Denial of Service (CWE-400) i Node.js HTTP-server.

Konklusjon

For å forhindre tjenestenekt (CWE-400) i Node.js HTTP Server, bruk ' Satsbegrenser ', ' Tidsavbruddsmetoder ', ' Omvendte proxyer ', ' CDN-er ', ' WAF ' og ' Load Balancer ' teknikker. De begrenser antall forespørsler, lukker forespørselsvinduet, omdirigerer forespørselen til et annet nettsted, deler og laster opp den originale koden i flere servere og balanserer belastningen over hver server. Denne hurtigveiledningen har illustrert prosessen for å redusere eller forhindre tjenestenekt (CWE-400) i Node.js HTTP-server.