Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การผสาน Express-rate-limit ใน Node.js

Rate-limiting (การจำกัดอัตราคำขอ) มีความสำคัญมากขึ้นเรื่อยๆ เพื่อป้องกันเว็บไซต์จากโจมตี DoS และ DDoS ป้องกันคำขอปลอม (fake requests) และการโจมตี brute force โดยการจำกัดจำนวนคำขอจาก IP เดียวกัน express-rate-limit เป็นแพ็กเกจ npm สำหรับวัตถุประสงค์นี้

การติดตั้ง

npm install --save express-rate-limit

ตัวอย่างการใช้งาน

สร้างไฟล์ rateLimit.js และรันด้วย node rateLimit.js

rateLimit.js

const express = require("express");
const rateLimit = require("express-rate-limit");

const app = express();

// กำหนดค่า rate limiter
const limiter = rateLimit({
  max: 5,                 // จำนวนคำขอสูงสุด
  windowMs: 60 * 60 * 1000, // ระยะเวลา 1 ชั่วโมง (มิลลิวินาที)
  message: "Too many request from this IP" // ข้อความเมื่อเกิน limit
});

// ใช้ middleware กับทุก route
app.use(limiter);

// Route ตัวอย่าง
app.get("/", (req, res) => {
  res.status(200).json({
    status: "SUCCESS",
    message: "Welcome to TutorialsPoint !"
  });
});

// เริ่มเซิร์ฟเวอร์
const port = 8000;
app.listen(port, () => {
  console.log(`app is running on port ${port}`);
});

การทดสอบ

  1. รันแอปพลิเคชัน
  2. เปิดเบราว์เซอร์ไปที่ https://localhost:8000
  3. ลองรีเฟรชเกิน 5 ครั้ง จะได้รับข้อความ error "Too many request from this IP"

หมายเหตุ: รูปภาพตัวอย่างผลลัพธ์ถูกละเว้นในเวอร์ชันนี้