Wie kann Denial of Service (CWE-400) im Node.js-HTTP-Server verhindert werden?

Wie Kann Denial Of Service Cwe 400 Im Node Js Http Server Verhindert Werden



Mit der Weiterentwicklung der Technologie in allen Bereichen ist auch die Wahrscheinlichkeit von Datenverlusten und Cyberangriffen gestiegen. Neue Technologien spielen im Bereich der ethischen Entwicklung eine entscheidende Rolle, und auf die gleiche Weise können diese Technologien auch dazu genutzt werden, unethische Handlungen präziser und einfacher durchzuführen. Ein solcher Angriff, den ein Hacker ausführen kann, ist „ Denial-of-Service (CWE-400) “.

In diesem Handbuch wird das Verfahren zur Verhinderung von Denial-of-Service CWE-400 auf dem HTTP-Server von Nodejs erläutert.







Was ist Denial of Service eines HTTP-Servers (CWE-400)?

Denial of Service (CWE-400) ist ein Versuch des Angreifers, eine Anwendung für ursprüngliche Benutzer unzugänglich zu machen, indem er die Anwendung mit Bot-Verkehr überflutet. Dieser Angriff wird auch durchgeführt, indem die vorhandenen Schwachstellen der Anwendung ausgenutzt werden, um die Anwendung deutlich langsamer zu machen.



Sind Node Js-Anwendungen anfällig für böswillige Angriffe?

Ja, Node.js-Anwendungen können wie jede andere Software oder Anwendung anfällig für böswillige Angriffe sein. Nachfolgend sind einige der häufigsten und beliebtesten Arten böswilliger Angriffe aufgeführt:



    • Denial-of-Service-Angriffe
    • Injektionsangriffe
    • Cross-Site-Scripting (XSS)-Angriffe
    • Session-Hijacking-Angriffe

Wie kann Denial of Service (CWE-400) im Node.js-HTTP-Server verhindert werden?

Um den Denial-of-Service im HTTP-Server von Node.j zu verhindern, muss die Anzahl der Anfragen, die von einer einzelnen IP-Adresse innerhalb eines bestimmten Zeitraums empfangen werden, begrenzt werden. Auf diese Weise wird der über Ihre Anwendung empfangene Datenverkehr verarbeitet und es gibt auch verschiedene andere Methoden, um Denial of Service (CWE-400) in Node.js abzuschwächen.





Methode 1: Verwendung eines Ratenbegrenzers

Der Ratenbegrenzer ist der beste Ansatz, um den Denial-of-Service-Angriff gezielt zu verhindern, da er die Anzahl der Anfragen begrenzen kann, die von jeder Anfrage pro Fensterrahmen eingehen können:

const expObj = erfordern ( 'äußern' ) ;
const Limiting = erfordern ( 'Express-Ratenlimit' ) ;

const demoApp = expObj ( ) ;

const cusLim = Begrenzung ( {
windowMs: 2 * 60 * 1000 , // fünfzehn Protokoll
max: 100 ,
} ) ;
demoApp.use ( cusLim ) ;


Die Beschreibung des obigen Codes lautet wie folgt:



    • Installieren und importieren Sie zunächst „ äußern ' Und ' Express-Ratenlimit ” in Ihrem Node Js-Projekt mit dem „ npm i ” Befehl und „ erfordern() ”-Methode bzw.
npm ich drücke aus


    • Als nächstes erstellen Sie eine Express-Anwendung mit dem Namen „ DemoApp ” und erstellen Sie einen Ratenbegrenzer, indem Sie die erforderlichen Werte für „ zuweisen WindowsMs ' Und ' max „Eigenschaften der“ Express-Ratenlimit ' Objekt.
    • Der ' WindowsMs „ legt die Fensterzeitdauer fest und „ max „ legt die maximale Anfrage fest, die von einer einzelnen IP-Adresse pro Fenster empfangen werden kann.
    • Wenden Sie nun das „ verwenden() ”-Methode, die den Geschwindigkeitsbegrenzer mit dem „ DemoApp ”-Anwendung, um die von der „demoApp“-Anwendung empfangene Anfrage einzuschränken.

Methode 2: Verwendung von Timeout-Methoden

Der ' Auszeit ” Methoden wie „ setTimeout() ',' headersTimeout ',' Zeitüberschreitung der Anforderung ',' Auszeit ', Und ' keepAliveTimeout() ” dienen zum Verlassen oder Beenden des „ http-Server ”Server. Dadurch wird der Denial of Service (CWE-400) verhindert, indem ein minimaler Zeitrahmen für offene Fenster bereitgestellt wird. Beispielsweise wurde die Anfrage gelöscht oder das Fenster wird geschlossen, nachdem „ 3 ” Sekunden:

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

Zusätzliche Tipps zur Eindämmung des Denial-of-Service in Node Js

Es gibt einige zusätzliche Tipps, die bei der Eindämmung des Denial-of-Service (CWE-400) im HTTP-Server von Nodejs helfen. Diese sind unten aufgeführt:

    • Der ' Reverse-Proxys ” sollte verwendet werden, um Anfragen an die Node Js-Anwendung zu senden oder zu empfangen. Diese Proxys bieten Caching, Lastausgleich und IP-Blacklisting, was sehr zur Eindämmung von DoS (CWE-400) beiträgt.
    • Die Nutzung eines Content Delivery Network“ CDN „ hilft, den DoS-Angriff (CWE-400) zu verhindern, indem der Code in mehrere Blöcke aufgeteilt und separat auf mehrere Server hochgeladen wird.
    • Der Einsatz einer Web Application Firewall“ WAF ” schützt Ihre Anwendung, indem es Anfragen von einer bekanntermaßen bösartigen Quelle blockiert.
    • Die Nutzung eines „ Lastenausgleicher „verteilt die Last der Anfragen gleichmäßig auf alle Server und verhindert so, dass ein einzelner Server überlastet wird.

Notiz: Weitere Informationen finden Sie auch in der authentischen Dokumentation von Node.js Denial-of-Service (CWE-400) .

Dabei geht es um die Verhinderung von Denial of Service (CWE-400) im HTTP-Server von Node.j.

Abschluss

Um Denial of Service (CWE-400) im HTTP-Server von Node.js zu verhindern, verwenden Sie „ Ratenbegrenzer ',' Timeout-Methoden ',' Reverse-Proxys ',' CDNs ',' WAF ' Und ' Lastenausgleicher ” Techniken. Sie begrenzen die Anzahl der Anfragen, schließen das Anfragefenster, leiten die Anfrage auf eine andere Website um, teilen den Originalcode auf und laden ihn auf mehrere Server hoch und verteilen die Last jeweils auf die einzelnen Server. In dieser Kurzanleitung wird der Prozess zur Eindämmung oder Verhinderung des Denial of Service (CWE-400) im HTTP-Server von Node.j veranschaulicht.