ExpressAdvanced
Express Security Best Practices
Helmet, rate limiting, XSS/SQLi protection, data sanitization — Express security বাংলায়।
9টি অংশবাংলা ভাষায়
Web app-এর নিরাপত্তা গুরুত্বপূর্ণ। Express-এ নিচের middleware গুলোতে অপরিহার্য।
নেওয়া Packages
npm install helmet express-rate-limit express-mongo-sanitize xss-clean hppindex.jsjavascript
javascript
const express = require("express");
const helmet = require("helmet");
const rateLimit = require("express-rate-limit");
const mongoSanitize = require("express-mongo-sanitize");
const xss = require("xss-clean");
const hpp = require("hpp");
const app = express();
// 1. Security headers
app.use(helmet());
// 2. Data sanitization — XSS
app.use(xss());
// 3. Prevent NoSQL injection
app.use(mongoSanitize());
// 4. Prevent parameter pollution
app.use(hpp());
// 5. Rate limiting
const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 min
max: 100, // 100 request/IP
message: { error: "অনেক বেশি request — পরে চেষ্টা করুন" },
});
app.use("/api", limiter);
// 6. Body parsing (JSON only)
app.use(express.json({ limit: "10kb" }));একটি Hack Attempt
NoSQL injectionbash
bash
# attacker চেষ্টা ↓
POST /api/users
{ "email": { "$gt": "" } }
# mongoSanitize-এ ক্লিন হয় →
{ email: null }
# user data corrupt হয় নাSecurity Checklist
| Area | অ্যাকশন |
|---|---|
| Headers | helmet() ব্যবহার |
| Rate limit | 100-200 req/15min per IP |
| Validation | Zod দিয়ে strict schema |
| Password | bcrypt hash, দৃঢ় হলে |
| JWT | short expiry + secure secret |
| CORS | only trusted origins |
| HTTPS | production-এ সদা HTTPS |
| Logs | sensitive data লগে নেই |
প্রতিটি request-এ
এই 6 middleware (helmet, xss, mongoSanitize, hpp, rateLimit, json limit) নতুন Express API-তে always যোগ করুন।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।