Rate Limiting & Brute Force Prevention

Rate Limiting & Brute Force Prevention (Express.js)

Express.js অ্যাপ্লিকেশন সিকিউর করার জন্য Rate Limiting এবং Brute Force Prevention একটি অত্যন্ত গুরুত্বপূর্ণ Security Technique।

📌 Rate Limiting কী?

Rate Limiting হলো একটি নির্দিষ্ট সময়ের মধ্যে একজন user বা IP address সর্বোচ্চ কতবার request করতে পারবে, তার সীমা নির্ধারণ করা। এটি DDoS Attack, API Abuse এবং Brute Force Attack প্রতিরোধে সহায়তা করে।

🛡️ Security

Login, OTP বা sensitive API গুলোকে Brute Force Attack থেকে রক্ষা করে।

⚡ Performance

অপ্রয়োজনীয় অতিরিক্ত request কমিয়ে server load হ্রাস করে।

🔐 API Protection

API misuse এবং automated bot request প্রতিরোধ করে।

⚙️ Express.js-এ Rate Limiting Implementation

Express.js-এ সবচেয়ে জনপ্রিয় middleware হলো express-rate-limit

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

const limiter = rateLimit({
  windowMs: 15 * 60 * 1000, // 15 minutes
  max: 100, // প্রতি IP সর্বোচ্চ 100 request
  message: "Too many requests, please try again later."
});

app.use("/api", limiter);
      

🚫 Brute Force Attack কী?

Brute Force Attack হলো যেখানে attacker বারবার বিভিন্ন password বা OTP চেষ্টা করে user account access করার চেষ্টা করে।

Login, Admin Panel এবং Password Reset API গুলো এই ধরনের attack-এর জন্য সবচেয়ে বেশি ঝুঁকিপূর্ণ।

🔐 Login API Rate Limit

const loginLimiter = rateLimit({
  windowMs: 10 * 60 * 1000,
  max: 5,
  message: "Too many login attempts. Try again later."
});

app.post("/login", loginLimiter, loginController);
        

🧠 Extra Protection

  • Failed login count track করা
  • Temporary account lock
  • Captcha ব্যবহার
  • Strong password policy

🚀 Advanced Security Tips

  • Redis store ব্যবহার করে distributed rate limiting
  • IP + User ID combine করে limit করা
  • Suspicious IP blacklist করা
  • Helmet middleware ব্যবহার করা

🌍 Real-Life Use Case

একটি Production Express.js API-তে সাধারণত:

  • Public API → 100 request / 15 minutes
  • Login API → 5 attempts / 10 minutes
  • OTP API → 3 attempts / 5 minutes
👼 Quiz
/

লোড হচ্ছে...

Interview Questions:

1. Rate Limiting কী?

Rate Limiting দিয়ে নির্দিষ্ট সময়ের মধ্যে request সংখ্যা সীমিত করা হয়।

2. Brute Force Attack কীভাবে প্রতিরোধ করা যায়?

Rate limiting, account lock, captcha এবং strong password ব্যবহার করে প্রতিরোধ করা যায়।