Signed এবং Secure Cookies ব্যবহার

KoaJS এর Session Management এবং Cookies - কোআজেএস (KoaJS) - Web Development

263

Cookies হল ক্লায়েন্ট সাইডে তথ্য সংরক্ষণের একটি সাধারণ পদ্ধতি, যা ওয়েব অ্যাপ্লিকেশনগুলোর মধ্যে ব্যবহারকারীর সেশন এবং অন্যান্য ডেটা পরিচালনা করতে ব্যবহৃত হয়। KoaJS-এ signed cookies এবং secure cookies ব্যবহারের মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনের সিকিউরিটি এবং ডেটার অখণ্ডতা বজায় রাখতে পারেন।

  • Signed Cookies: Signed cookies ব্যবহার করে আপনি নিশ্চিত করতে পারেন যে কুকির মানটি অনুমোদিত উৎস থেকে এসেছে এবং তা পরিবর্তিত হয়নি। এটি কুকির ডেটা সিগনেচার প্রদান করে যা কোনো তৃতীয় পক্ষ দ্বারা পরিবর্তিত হতে পারে না।
  • Secure Cookies: Secure cookies ব্যবহার করা হয় যখন আপনি নিশ্চিত করতে চান যে কুকিটি শুধুমাত্র HTTPS প্রটোকলে পাঠানো হবে। এটি আপনার অ্যাপ্লিকেশনের নিরাপত্তা বাড়ায়, বিশেষ করে যদি কুকিতে সংবেদনশীল ডেটা থাকে।

১. Signed Cookies ব্যবহার করা

KoaJS-এ signed cookies ব্যবহার করার জন্য koa-cookie প্যাকেজ ব্যবহার করা যেতে পারে। এটি কুকির সিগনেচার তৈরি এবং যাচাই করতে সাহায্য করে।

১.১. koa-cookie ইনস্টল করা

npm install koa-cookie

১.২. Signed Cookies কনফিগারেশন

KoaJS-এ signed cookies ব্যবহারের জন্য ctx.cookies ব্যবহার করা যেতে পারে। এখানে signed অপশন ব্যবহার করে কুকির মান সিগনেচার করা হয়।

const Koa = require('koa');
const Router = require('koa-router');
const cookie = require('koa-cookie');  // koa-cookie প্যাকেজ ইনস্টল করা

const app = new Koa();
const router = new Router();

// কুকি সিগনেচার সেট করা
app.keys = ['your-secret-key'];  // কুকির সিগনেচার তৈরির জন্য একটি সিক্রেট কী সেট করা

app.use(cookie());  // কুকি মিডলওয়্যার ব্যবহার করা

// রাউট হ্যান্ডলিং
router.get('/set-cookie', async (ctx) => {
  ctx.cookies.set('user', 'John Doe', {
    signed: true,  // signed cookies ব্যবহার করা
    maxAge: 1000 * 60 * 60 * 24,  // কুকির মেয়াদ ২৪ ঘণ্টা
    httpOnly: true,  // কুকি শুধুমাত্র HTTP প্রোটোকলের মাধ্যমে অ্যাক্সেসযোগ্য
  });
  ctx.body = 'Signed cookie has been set!';
});

router.get('/get-cookie', async (ctx) => {
  const user = ctx.cookies.get('user', { signed: true });  // signed কুকি গ্রহণ করা
  ctx.body = `Hello ${user}`;
});

app.use(router.routes()).use(router.allowedMethods());

app.listen(3000, () => {
  console.log('Server running on http://localhost:3000');
});

এখানে:

  • ctx.cookies.set() মাধ্যমে আমরা user নামক signed cookie সেট করেছি।
  • ctx.cookies.get() মাধ্যমে আমরা signed cookie থেকে ডেটা গ্রহণ করছি।

সিগনেচার: কুকির মানটি সিক্রেট কী দ্বারা সিগনেচার করা হয়, যাতে সেটি তৃতীয় পক্ষ দ্বারা পরিবর্তিত হতে না পারে। কুকির সিগনেচার যাচাই করা হয় যখন সেটি আবার রিড করা হয়।


২. Secure Cookies ব্যবহার করা

Secure Cookies শুধুমাত্র HTTPS প্রোটোকলে পাঠানো হয়। যদি আপনার অ্যাপ্লিকেশন HTTPS প্রোটোকল ব্যবহার করে, তবে আপনি secure অপশনটি ব্যবহার করে কুকি সেট করতে পারবেন।

২.১. Secure Cookies কনফিগারেশন

const Koa = require('koa');
const Router = require('koa-router');
const cookie = require('koa-cookie');

const app = new Koa();
const router = new Router();

// কুকি সেট করা
app.keys = ['your-secret-key'];  // কুকির সিগনেচার তৈরির জন্য একটি সিক্রেট কী সেট করা

app.use(cookie());  // কুকি মিডলওয়্যার ব্যবহার করা

// রাউট হ্যান্ডলিং
router.get('/set-secure-cookie', async (ctx) => {
  ctx.cookies.set('user', 'John Doe', {
    signed: true,  // signed cookies ব্যবহার করা
    secure: true,  // secure cookies ব্যবহার করা (HTTPS প্রোটোকলে)
    maxAge: 1000 * 60 * 60 * 24,  // কুকির মেয়াদ ২৪ ঘণ্টা
    httpOnly: true,  // কুকি শুধুমাত্র HTTP প্রোটোকলের মাধ্যমে অ্যাক্সেসযোগ্য
  });
  ctx.body = 'Secure cookie has been set!';
});

router.get('/get-secure-cookie', async (ctx) => {
  const user = ctx.cookies.get('user', { signed: true });  // signed কুকি গ্রহণ করা
  ctx.body = `Hello ${user}`;
});

app.use(router.routes()).use(router.allowedMethods());

app.listen(3000, () => {
  console.log('Server running on http://localhost:3000');
});

এখানে:

  • secure: true সেট করা হয়েছে, যার মানে কুকি কেবলমাত্র HTTPS প্রোটোকলে পাঠানো হবে।
  • httpOnly: true সেট করা হয়েছে, যাতে কুকি শুধুমাত্র HTTP রিকোয়েস্টের মাধ্যমে অ্যাক্সেস করা যায় (JavaScript থেকে অ্যাক্সেস করা যাবে না)।

Secure Cookies ব্যবহারের জন্য, আপনার সার্ভার অবশ্যই HTTPS প্রোটোকল ব্যবহার করতে হবে, অথবা কুকিটি ক্লায়েন্টে সেট করা হবে না।


৩. Signed এবং Secure Cookies একসাথে ব্যবহার করা

কখনও কখনও আপনি signed এবং secure cookies একসাথে ব্যবহার করতে পারেন, যাতে কুকির ডেটা সিগনেচার করা হয় এবং কেবলমাত্র সিকিউর HTTPS প্রোটোকলে সেট করা হয়।

const Koa = require('koa');
const Router = require('koa-router');
const cookie = require('koa-cookie');

const app = new Koa();
const router = new Router();

// কুকি সেট করা
app.keys = ['your-secret-key'];

app.use(cookie());  // কুকি মিডলওয়্যার ব্যবহার করা

// রাউট হ্যান্ডলিং
router.get('/set-secure-signed-cookie', async (ctx) => {
  ctx.cookies.set('user', 'John Doe', {
    signed: true,  // signed cookies ব্যবহার করা
    secure: true,  // secure cookies ব্যবহার করা (HTTPS প্রোটোকলে)
    maxAge: 1000 * 60 * 60 * 24,  // কুকির মেয়াদ ২৪ ঘণ্টা
    httpOnly: true,  // কুকি শুধুমাত্র HTTP প্রোটোকলের মাধ্যমে অ্যাক্সেসযোগ্য
  });
  ctx.body = 'Secure and signed cookie has been set!';
});

router.get('/get-secure-signed-cookie', async (ctx) => {
  const user = ctx.cookies.get('user', { signed: true });  // signed কুকি গ্রহণ করা
  ctx.body = `Hello ${user}`;
});

app.use(router.routes()).use(router.allowedMethods());

app.listen(3000, () => {
  console.log('Server running on http://localhost:3000');
});

এখানে:

  • Signed এবং Secure কুকি একসাথে ব্যবহার করা হয়েছে, যাতে কুকির ডেটা সিগনেচার হয় এবং কেবলমাত্র HTTPS প্রোটোকলে সেট হয়।

সারাংশ

KoaJS-এ signed এবং secure cookies ব্যবহার করা অ্যাপ্লিকেশনের নিরাপত্তা বৃদ্ধি করতে সাহায্য করে। Signed Cookies কুকির ডেটা সুরক্ষিত রাখে এবং নিশ্চিত করে যে কুকিটি পরিবর্তিত হয়নি। Secure Cookies কেবলমাত্র HTTPS প্রোটোকলে পাঠানো হয়, যা ক্লায়েন্ট-সাইডে কুকির ডেটা সুরক্ষিত রাখে। koa-cookie ব্যবহার করে সহজেই এই কুকিগুলি কনফিগার করা যায় এবং অ্যাপ্লিকেশনের নিরাপত্তা নিশ্চিত করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...