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
লোড হচ্ছে...
1. Rate Limiting কী?
Rate Limiting দিয়ে নির্দিষ্ট সময়ের মধ্যে request সংখ্যা সীমিত করা হয়।
2. Brute Force Attack কীভাবে প্রতিরোধ করা যায়?
Rate limiting, account lock, captcha এবং strong password ব্যবহার করে প্রতিরোধ করা যায়।