Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

Node.jsにExpress-rate-limitを統合する


WebサイトがDOSおよびDDOS攻撃を受けないようにするために、レート制限は日々重要になっています。レート制限は、システムがあらゆる種類の偽の要求やその他のブルートフォース攻撃から保護します。レート制限は、IPが要求を行うことができる回数を制限します。 expressrate-limitは、ユーザーからのリクエスト数を制限するためのnpmパッケージです。

レート制限モジュールのインストール

以下のコマンドを実行して、エクスプレスレート制限モジュールをアプリケーションにインストールします。

npm install --save express-rate-limit

名前がrateLimit.jsのファイルを作成し、以下のコードスニペットをコピーします。ファイルを作成したら、次のコマンドを使用して、以下の例に示すようにこのコードを実行します-

node rateLimit.js

rateLimit.js

// Importing the express dependency
const express = require("express");

// Importing the express-rate-limit dependency
const rateLimit = require("express-rate-limit");

// Storing the express function in variable application
const applicaion = express();

// Calling the ratelimiter function with its options
// max: Contains the maximum number of requests
// windowsMs: Contains the time in milliseconds to receive max requests
// message: message to be shown to the user on rate-limit
const limiter = rateLimit({
   max: 5,
   windowMs: 60 * 60 * 1000,
   message: "Too many request from this IP"
});

// Adding the rate-limit function to the express middleware so
// that each requests passes through this limit before executing
applicaion.use(limiter);

// GET route for handling the user requests
applicaion.get("/", (req, res) => {
   res.status(200).json({
      status: "SUCCESS",
      message: "Welcome to TutorialsPoint !"
   });
});

// Server Setup
const port = 8000;
applicaion.listen(port, () => {
   console.log(`app is running on port ${port}`);
});

出力

C:\home\node>> node rateLimit.js

ノードアプリケーションを実行した後、ブラウザに移動してlocalhost:8000

を押します。

以下に示すような同様のページが表示されます。

Node.jsにExpress-rate-limitを統合する

同じURLを5回以上押すか更新してみると、以下のエラーが表示されます。

Node.jsにExpress-rate-limitを統合する


  1. Javascriptのバイナリツリー

    バイナリツリーは、データストレージの目的で使用される特別なデータ構造です。二分木には、各ノードが最大2つの子を持つことができるという特別な条件があります。バイナリツリーには、検索が並べ替えられた配列と同じくらい高速であり、挿入または削除操作がリンクリストと同じくらい高速であるため、順序付き配列とリンクリストの両方の利点があります。 これは、以下で説明するいくつかの用語を含む二分木の図です- 重要な用語 以下は、ツリーに関する重要な用語です。 パス −パスとは、ツリーのエッジに沿ったノードのシーケンスを指します。 ルート −ツリーの最上部にあるノードはルートと呼ばれます。ツ

  2. Javascriptでのプリムのアルゴリズム

    Primのアルゴリズムは、重み付き無向グラフの最小スパニングツリーを見つける欲張りアルゴリズムです。すべての頂点を含むツリーを形成するエッジのサブセットを検出し、ツリー内のすべてのエッジの合計の重みが最小化されます。 アルゴリズムは、ツリーから別の頂点への可能な限り安価な接続を追加する各ステップで、任意の開始頂点から一度に1つの頂点でこのツリーを構築することによって動作します。 プリムのアルゴリズムはどのように機能しますか? プリムのアルゴリズムがどのように機能するかを示す図を見てみましょう- 1.ルートノードとして任意のノードを選択します。この場合、Primのスパニングツリーのルートノ