Security Best Practices (Helmet, sanitization, bcrypt)
Express.js Security Best Practices
Express.js অ্যাপ্লিকেশন সুরক্ষিত রাখতে Helmet, Input Sanitization এবং bcrypt ব্যবহার করা অত্যন্ত গুরুত্বপূর্ণ।
🔐 কেন Security Best Practices জরুরি?
Web application-এ সঠিক security না থাকলে XSS, SQL Injection, Password Leak এবং Data Breach-এর মতো ঝুঁকি তৈরি হয়। তাই production-ready Express.js app-এর জন্য security অপরিহার্য।
🛡️ Helmet – Secure HTTP Headers
Helmet হলো একটি Express middleware যা বিভিন্ন HTTP security header সেট করে আপনার অ্যাপকে সাধারণ আক্রমণ থেকে রক্ষা করে।
📌 Helmet কী কী করে?
- XSS Protection
- Clickjacking প্রতিরোধ
- MIME type sniffing বন্ধ করা
- Strict Transport Security (HSTS)
npm install helmet
const helmet = require("helmet");
app.use(helmet());
🧹 Input Sanitization
User input সরাসরি ব্যবহার করলে SQL Injection বা XSS attack হতে পারে। Sanitization input পরিষ্কার করে নিরাপদ করে।
জনপ্রিয় Package:
- express-validator
- xss-clean
🔍 Example (express-validator)
npm install express-validator
const { body, validationResult } = require("express-validator");
app.post("/login",
body("email").isEmail(),
body("password").trim().escape(),
(req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(400).json(errors.array());
}
res.send("Input is safe");
}
);
🔑 bcrypt – Password Hashing
Password কখনোই plain text হিসেবে database-এ রাখা উচিত নয়। bcrypt password hash করে নিরাপদভাবে সংরক্ষণ করে।
npm install bcrypt
🔒 Password Hash করা
const bcrypt = require("bcrypt");
const hashedPassword = await bcrypt.hash(password, 10);
✅ Password Verify করা
const isMatch = await bcrypt.compare(password, hashedPassword);
✅ Security Best Practices Summary
- Helmet ব্যবহার করে HTTP headers secure করুন
- User input অবশ্যই sanitize ও validate করুন
- Password সবসময় bcrypt দিয়ে hash করুন
- Never store sensitive data in plain text
লোড হচ্ছে...
1. Helmet কী এবং এটি কেন ব্যবহার করা হয়?
Helmet হলো একটি Node.js middleware যা HTTP security headers সেট করে অ্যাপ্লিকেশনকে XSS, Clickjacking ইত্যাদি আক্রমণ থেকে সুরক্ষিত রাখে।
2. bcrypt কেন পাসওয়ার্ড সিকিউরিটির জন্য গুরুত্বপূর্ণ?
bcrypt পাসওয়ার্ডকে hash ও salt করে সংরক্ষণ করে, ফলে ডাটাবেজ লিক হলেও আসল পাসওয়ার্ড উদ্ধার করা কঠিন হয়।
3. Input Sanitization কেন জরুরি?
Sanitization ব্যবহারকারীর ইনপুট পরিষ্কার করে SQL Injection ও XSS আক্রমণ প্রতিরোধ করে।