1. Home
  2. Web Application Security
  3. 2.Cross-Site Scripting (X...
  4. HTTP-Only কুকি ব্যবহার

HTTP-Only কুকি ব্যবহার

HTTP-Only কুকি হলো একটি বিশেষ ধরনের কুকি যা JavaScript দ্বারা অ্যাক্সেস করা যায় না। এটি কুকি নিরাপত্তা বাড়ানোর জন্য ব্যবহৃত হয়, বিশেষ করে Cross-Site Scripting (XSS) আক্রমণ থেকে সুরক্ষা দেয়। যখন একটি কুকিকে HttpOnly হিসেবে সেট করা হয়, তখন ব্রাউজারের স্ক্রিপ্ট সেই কুকিটি পড়তে বা সেট করতে পারে না, কেবলমাত্র সার্ভারেই এই কুকি অ্যাক্সেস করা যায়।

HTTP-Only কুকি ব্যবহার করার উদাহরণ:

Node.js (Express) এ HTTP-Only কুকি সেট করা:

এখানে একটি Node.js (Express) অ্যাপ্লিকেশনের উদাহরণ দেওয়া হলো যেখানে HTTP-Only কুকি সেট করা হয়েছে।

const express = require('express');
const app = express();
const port = 3000;

app.use(express.json());

app.post('/login', (req, res) => {
    // প্রমাণীকরণ লজিক এখানে
    // উদাহরণস্বরূপ, ইউজার ভেরিফাই করা হলো
    const userVerified = true; // এটি সাধারণত ইউজার ভেরিফিকেশন লজিক দ্বারা নির্ধারিত হবে
    
    if (userVerified) {
        // সিকিউর কুকি সেট করা
        res.cookie('sessionID', 'your-session-id-value', {
            httpOnly: true, // এই কুকিটি স্ক্রিপ্ট দ্বারা অ্যাক্সেস করা যাবে না
            secure: true,   // কুকিটি কেবলমাত্র HTTPS সংযোগের জন্য পাঠানো হবে
            sameSite: 'Strict' // কুকিটি শুধুমাত্র একই সাইটের জন্য পাঠানো হবে
        });
        res.send('Logged in successfully');
    } else {
        res.status(401).send('Unauthorized');
    }
});

app.get('/protected', (req, res) => {
    // সেশনের ভিত্তিতে ডেটা প্রাপ্তি
    if (req.cookies.sessionID) {
        res.send('Protected content');
    } else {
        res.status(403).send('Forbidden');
    }
});

app.listen(port, () => {
    console.log(`Server running at http://localhost:${port}`);
});

কুকি কনফিগারেশন ডিটেইলস:

  • httpOnly: true:
    • এই সেটিং নিশ্চিত করে যে কুকিটি JavaScript দ্বারা অ্যাক্সেস করা যাবে না। এটি XSS আক্রমণ থেকে কুকি সুরক্ষিত রাখে।
  • secure: true:
    • এই সেটিং কুকিটিকে কেবলমাত্র HTTPS সংযোগের মাধ্যমে পাঠানো হয়। এটি ট্রান্সমিশন স্তরে কুকির নিরাপত্তা নিশ্চিত করে।
  • sameSite: 'Strict':
    • এই সেটিং নিশ্চিত করে যে কুকিটি কেবলমাত্র সাইটের মূল ডোমেইনের জন্য পাঠানো হবে। এটি Cross-Site Request Forgery (CSRF) আক্রমণ থেকে সুরক্ষা প্রদান করে।

কিভাবে HTTP-Only কুকি সুরক্ষা প্রদান করে:

  1. XSS আক্রমণ প্রতিরোধ:
    • যেহেতু HTTP-Only কুকি JavaScript দ্বারা অ্যাক্সেস করা যায় না, তাই XSS আক্রমণকারীরা কুকি চুরি করতে পারবে না। এটি সেশনের কুকি, লগইন টোকেন ইত্যাদি সুরক্ষিত রাখে।
  2. HTTPS প্রটোকল ব্যবহার:
    • secure: true সেটিং কুকির নিরাপত্তা বাড়ায় কারণ এটি কুকিটিকে কেবলমাত্র নিরাপদ HTTPS সংযোগের মাধ্যমে পাঠায়।
  3. SameSite পলিসি:
    • sameSite: 'Strict' সেটিং কুকিটিকে কেবলমাত্র ঐ একই ডোমেইন থেকে পাঠানো হয়, যা CSRF আক্রমণ থেকে সুরক্ষা প্রদান করে।

প্র্যাকটিক্যাল ইউজ:

1. নিরাপত্তা:

  • যদি আপনি একটি লগইন সিস্টেম তৈরি করছেন যেখানে ব্যবহারকারীর সেশন টোকেন একটি কুকিতে সংরক্ষিত থাকে, তাহলে HttpOnly কুকি ব্যবহার করে সেশন টোকেন সুরক্ষিত রাখুন।

2. HTTPS:

  • নিশ্চিত করুন যে আপনার সার্ভার HTTPS ব্যবহার করছে, তাহলে secure কুকি সেটিং এর সুবিধা পেতে পারবেন।

3. SameSite:

  • sameSite: 'Strict' ব্যবহার করে CSRF আক্রমণ থেকে সুরক্ষা বাড়ান, যা শুধুমাত্র একই সাইটের কুকি পাঠায়।

এইভাবে, HttpOnly কুকি ব্যবহার করে ওয়েব অ্যাপ্লিকেশনের সুরক্ষা শক্তিশালী করা যায় এবং কুকি চুরি ও XSS আক্রমণ প্রতিরোধ করা সম্ভব।

How can we help?