A technológia fejlődésével minden területen az adatvesztés és a kibertámadások esélyei is javultak. Az új technológiák létfontosságú szerepet játszanak az etikus fejlődés terén, és ugyanígy ezek a technológiák is felhasználhatók etikátlan cselekvések pontosabb és egyszerűbb végrehajtására. Az egyik ilyen támadás, amelyet egy hacker végrehajthat: Szolgáltatásmegtagadás (CWE-400) ”.
Ez az útmutató elmagyarázza a CWE-400 szolgáltatásmegtagadás megakadályozását a Nodejs HTTP-kiszolgálón.
Mi az a HTTP-kiszolgáló szolgáltatásmegtagadása (CWE-400)?
A szolgáltatásmegtagadás (CWE-400) a támadó arra irányuló kísérlete, hogy egy alkalmazást elérhetetlenné tegyen az eredeti felhasználók számára azáltal, hogy túlárazza az alkalmazást botforgalommal. Ezt a támadást az alkalmazás sebezhetőségeinek kihasználásával is végrehajtják az alkalmazás lelassítására.
Sebezhetőek a Node Js alkalmazások a rosszindulatú támadásokkal szemben?
Igen, a Node.js alkalmazások ugyanúgy sebezhetők lehetnek a rosszindulatú támadásokkal szemben, mint bármely más szoftver vagy alkalmazás. Az alábbiakban felsorolunk néhány leggyakoribb és legnépszerűbb rosszindulatú támadástípust:
-
- Szolgáltatásmegtagadási támadások
- Injekciós támadások
- Cross-Site Scripting (XSS) támadások
- Munkamenet-eltérítési támadások
Hogyan lehet megakadályozni a szolgáltatásmegtagadást (CWE-400) a Node.js HTTP-kiszolgálón?
A Node.js HTTP-kiszolgáló szolgáltatásmegtagadásának megakadályozása érdekében korlátozni kell az egyetlen IP-címről egy meghatározott időkereten belül érkező kérések számát. Ily módon az alkalmazáson keresztül fogadott forgalmat kezeljük, és számos egyéb módszer is létezik a szolgáltatásmegtagadás (CWE-400) enyhítésére a Node.js-ben.
1. módszer: Rate Limiter használata
A sebességkorlátozó a legjobb módszer a szolgáltatásmegtagadási támadások konkrét megelőzésére, mivel korlátozhatja az egyes kérésekből ablakkeretenként érkező kérések számát:
const expObj = követelmény ( 'Expressz' ) ;const Korlátozás = megköveteli ( 'express-rate-limit' ) ;
const demoApp = expObj ( ) ;
const cusLim = Korlátozás ( {
windowsMs: 2 * 60 * 1000 , // tizenöt percek
max: 100 ,
} ) ;
demoApp.use ( cusLim ) ;
A fenti kód leírása a következő:
-
- Először telepítse és importálja a „ Expressz ” és „ express-rate-limit ' a Node Js projektben a ' npm i
'parancs és ' igényel() ” módszerrel.
- Először telepítse és importálja a „ Expressz ” és „ express-rate-limit ' a Node Js projektben a ' npm i
-
- Ezután hozzon létre egy '' nevű expressz alkalmazást demoApp ', és hozzon létre egy sebességkorlátozót a szükséges értékek hozzárendelésével windowsMs ” és „ max ' tulajdonságai a ' express-rate-limit ' tárgy.
- A ' windowsMs ' beállítja az ablak időtartamát és a ' max ” beállítja az ablakonként egyetlen IP-címről fogadható maximális kérést.
- Most alkalmazza a „ használat() ' módszer, amely tartalmazza a sebességkorlátozót a ' demoApp ” alkalmazás a „demoApp” alkalmazás által kapott kérés korlátozására.
2. módszer: Időtúllépési módszerek használata
A ' időtúllépés ' módszerek, mint a ' setTimeout() ', ' headersTimeout ', ' időt kér ', ' időtúllépés ”, és „ KeepAliveTimeout() A '' kifejezés kilépésére vagy befejezésére szolgál http-szerver ' szerver. Ez megakadályozza a szolgáltatásmegtagadást (CWE-400) azáltal, hogy minimális nyitott ablakidőkeretet biztosít. Például a kérést törölték, vagy az ablak bezárásra kerül a „ 3 ” másodperc:
const szerver = http.createServer ( ( req, res ) = > {req.setTimeout ( 3000 ) ;
// Kérelem kezelése
} ) ;
További tippek a Node Js szolgáltatásmegtagadás enyhítésére
Vannak további tippek, amelyek segítenek a szolgáltatásmegtagadás (CWE-400) mérséklésében a Nodejs HTTP-kiszolgálón, ezek az alábbiak:
-
- A ' Fordított proxyk ” kell használni kérések küldésére vagy fogadására a Node Js alkalmazáshoz. Ezek a proxyk gyorsítótárazást, terheléselosztást és IP feketelistát kínálnak, ami sokat segít a DoS(CWE-400) mérséklésében.
- A tartalomszolgáltató hálózat használata ' CDN ” segít megelőzni a DoS(CWE-400) támadást azáltal, hogy a kódot több részre osztja, és külön tölti fel több szerverre.
- A webalkalmazások tűzfalának használata ' WAF ” megvédi az alkalmazást azáltal, hogy blokkolja az ismert rosszindulatú forrásból érkező kéréseket.
- Egy ' Terhelés elosztó ” egyenletesen osztja el a kérelmek terhelését az összes szerver között, megakadályozva egyetlen szerver túlterhelését.
Jegyzet: A Node.js hiteles dokumentációjában is megtekintheti a további információkat Szolgáltatásmegtagadás (CWE-400) .
Ez minden a szolgáltatásmegtagadás (CWE-400) megakadályozásáról a Node.js HTTP-kiszolgálón.
Következtetés
A szolgáltatásmegtagadás (CWE-400) megakadályozásához a Node.js HTTP-kiszolgálóban használja a „ Rate Limiter ', ' Időtúllépési módszerek ', ' Fordított proxyk ', ' CDN-ek ', ' WAF ” és „ Terhelés elosztó ” technikák. Korlátozzák a kérések számát, bezárják a kérési ablakot, átirányítják a kérést egy másik webhelyre, felosztják és feltöltik az eredeti kódot több szerverre, és kiegyenlítik a terhelést az egyes szervereken. Ez a gyors útmutató bemutatja a Node.js HTTP-kiszolgálón a szolgáltatásmegtagadás (CWE-400) enyhítésének vagy megelőzésének folyamatát.