あらゆる分野のテクノロジーの進化に伴い、データの損失やサイバー攻撃の可能性も高まっています。新しいテクノロジーは倫理的発展の分野で重要な役割を果たしており、同様に、これらのテクノロジーは非倫理的な行為をより正確かつ簡単に実行するためにも使用できます。ハッカーによって実行される可能性のある攻撃の 1 つは、「 サービス拒否(CWE-400) ”。
このガイドでは、Nodejs HTTP サーバーでのサービス拒否 CWE-400 を防ぐ手順について説明します。
HTTP サーバーのサービス妨害 (CWE-400) とは何ですか?
サービス拒否 (CWE-400) は、攻撃者がボット トラフィックでアプリケーションをあふれさせ、元のユーザーがアプリケーションを使用できなくしようとする試みです。この攻撃は、アプリケーションに存在する脆弱性を悪用してアプリケーションを大幅に遅くすることによっても実行されます。
Node Js アプリケーションは悪意のある攻撃に対して脆弱ですか?
はい、Node.js アプリケーションは、他のソフトウェアやアプリケーションと同様に、悪意のある攻撃に対して脆弱になる可能性があります。最も一般的で一般的なタイプの悪意のある攻撃を以下に示します。
-
- サービス妨害攻撃
- 注射攻撃
- クロスサイト スクリプティング (XSS) 攻撃
- セッションハイジャック攻撃
Node.js HTTP サーバーでサービス拒否 (CWE-400) を防ぐ方法は?
Node.js HTTP サーバーでのサービス拒否を防ぐには、指定された時間枠内に単一の IP アドレスから受信するリクエストの数を制限する必要があります。このようにして、アプリケーション経由で受信したトラフィックが処理されます。また、Node.js のサービス拒否 (CWE-400) を軽減するためのさまざまな方法が他にもあります。
方法 1: レート リミッターの使用
レート リミッターは、ウィンドウ フレームごとの各リクエストから到着する可能性のあるリクエストの数を制限できるため、特にサービス拒否攻撃を防止するための最良のアプローチです。
const expObj = 必要 ( '急行' ) ;const 制限 = 必須 ( 「エクスプレスレート制限」 ) ;
const デモApp = expObj ( ) ;
const cusLim = 制限 ( {
窓さん: 2 * 60 * 1000 、 // 15 分
最大: 100 、
} ) ;
デモアプリの使用 ( カスリム ) ;
上記のコードの説明は次のとおりです。
-
- まず、「」をインストールしてインポートします。 急行 ' そして ' エクスプレスレートリミット Node Js プロジェクトで「」を使用して npm i <パッケージ名> ”コマンドと” 必要とする() 」の方法をそれぞれ使用します。
-
- 次に、「」という名前の高速アプリケーションを作成します。 デモアプリ 」に必要な値を割り当ててレート リミッターを作成します。 窓さん ' そして ' 最大 「」のプロパティ エクスプレスレートリミット ' 物体。
- ” 窓さん ” はウィンドウの継続時間を設定し、” 最大 」は、ウィンドウごとに 1 つの IP アドレスから受信できる最大リクエストを設定します。
- ここで、「」を適用します。 使用() ” を備えたレート リミッタを含むメソッド デモアプリ 」アプリケーションを使用して、「demoApp」アプリケーションが受信するリクエストを制限します。
方法 2: タイムアウト メソッドの使用
” タイムアウト ” のような方法” setTimeout() '、' ヘッダータイムアウト '、' requestTimeout '、' タイムアウト '、 そして ' keepAliveTimeout() ” は、” を終了または終了するために使用されます。 httpサーバー 」サーバー。これにより、最小のオープン ウィンドウ時間枠が提供され、サービス拒否 (CWE-400) が防止されます。たとえば、リクエストが削除されたか、「」の後にウィンドウが閉じられます。 3 ” 秒:
const サーバー = http.createServer ( ( 要求、要求 ) = > {req.setTimeout ( 3000 ) ;
// リクエストの処理
} ) ;
Node Js でのサービス拒否を軽減するための追加のヒント
Nodejs HTTP サーバーのサービス拒否 (CWE-400) を軽減するのに役立つ追加のヒントがいくつかあります。これらを以下に示します。
-
- ” リバースプロキシ 」は、Node Js アプリケーションへのリクエストの送受信に利用する必要があります。これらのプロキシは、キャッシュ、負荷分散、および DoS (CWE-400) の軽減に大いに役立つ IP ブラックリスト機能を提供します。
- コンテンツ配信ネットワークの使用」 CDN 」は、コードを複数のチャンクに分割し、複数のサーバーに個別にアップロードすることで、DoS(CWE-400) 攻撃を防ぐのに役立ちます。
- Web アプリケーション ファイアウォールの使用法 WAF 」は、既知の悪意のあるソースからのリクエストをブロックすることでアプリケーションを保護します。
- 「」の活用 ロードバランサー 」はリクエストの負荷をすべてのサーバーに均等に分散し、単一のサーバーが過負荷になるのを防ぎます。
注記: Node.js の本物のドキュメントをチェックして、詳細情報を取得することもできます。 サービス拒否(CWE-400) 。
Node.js HTTP サーバーにおけるサービス拒否 (CWE-400) の防止については以上です。
結論
Node.js HTTP サーバーでサービス拒否 (CWE-400) を防ぐには、「 レートリミッター '、' タイムアウトメソッド '、' リバースプロキシ '、' CDN '、' WAF ' そして ' ロードバランサー 」のテクニック。リクエストの数を制限し、リクエスト ウィンドウを閉じ、リクエストを別の Web サイトにリダイレクトし、元のコードを複数のサーバーに分割してアップロードし、それぞれのサーバーの負荷を分散します。このクイック ガイドでは、Node.js HTTP サーバーのサービス拒否 (CWE-400) を緩和または防止するプロセスを説明しました。