在 Node.js 中集成 Express-rate-limit

node.jsjavascriptweb developmentfront end technology

速率限制正变得越来越重要,它可以防止网站遭受 DOS 和 DDOS 攻击。速率限制可防止系统受到任何类型的虚假请求或其他暴力攻击。速率限制限制 IP 可以发出请求的次数。expressrate-limit 是用于限制用户请求数量的 npm 包。

安装速率限制模块

运行以下命令在您的应用程序中安装 express 速率限制模块。

npm install --save express-rate-limit

示例

创建一个名为 – rateLimit.js 的文件并复制以下代码片段。创建文件后,使用以下命令运行此代码,如下例所示 −

node rateLimit.js

rateLimit.js

// 导入 express 依赖项
const express = require("express");

// 导入 express-rate-limit 依赖项
const rateLimit = require("express-rate-limit");

// 将 express 函数存储在变量 application 中
const applicaion = express();

// 调用 ratelimiter 函数及其选项
// max:包含最大请求数
// windowsMs:包含接收最大请求的时间(以毫秒为单位)
// message:在 rate-limit 上向用户显示的消息
const limiter = rateLimit({
   max: 5,
   windowMs: 60 * 60 * 1000,
   message: "来自此 IP 的请求过多"
});

// 将 rate-limit 函数添加到 express 中间件,以便
// 每个请求在执行之前都通过此限制
applicaion.use(limiter);

// GET 路由用于处理用户请求
applicaion.get("/", (req, res) => {
   res.status(200).json({
      status: "SUCCESS",
      message: "Welcome to TutorialsPoint !"
   });
});

// 服务器设置
const port = 8000;
applicaion.listen(port, () => {
   console.log(`app is running on port ${port}`);
});

输出

C:\home
ode>> node rateLimit.js

运行节点应用程序后,转到浏览器并点击 localhost:8000

您将看到如下所示的类似页面。

尝试点击或刷新同一 URL 超过 5 次,您将收到以下错误。


相关文章