বিদায় সংক্ষিপ্ত অধিবেশন - ওয়েবে কুকি ব্যবস্থাপনা উন্নত করতে পরিষেবা কর্মীদের ব্যবহারের জন্য একটি প্রস্তাব৷

William Denniss
Owen Campbell-Moore

আমরা সকলেই পছন্দ করি যে কীভাবে নেটিভ অ্যাপগুলি আপনাকে একবার লগইন করতে বলবে এবং তারপরে আপনাকে মনে রাখবে যতক্ষণ না আপনি তাদের লগ আউট করতে চান। দুর্ভাগ্যবশত ওয়েব সবসময় সেভাবে কাজ করে না।

এখন যেহেতু ডিভাইসগুলি, বিশেষ করে মোবাইল ডিভাইসগুলি, আরও ব্যক্তিগত, এবং আরও সাইটগুলি HTTPS-এর মাধ্যমে সমস্ত ট্র্যাফিক পাঠায় যাতে টোকেন চুরির ঝুঁকি হ্রাস পায়, ওয়েবসাইটগুলিকে তাদের স্বল্পমেয়াদী কুকি নীতিগুলি পুনর্বিবেচনা করা উচিত এবং আরও ব্যবহারকারী-বান্ধব দীর্ঘজীবী সেশনগুলি গ্রহণ করা উচিত৷

যাইহোক, এমনকি যদি আপনি সেশনটিকে দীর্ঘস্থায়ী করতে চান তবে কিছু ওয়েবসাইট প্রতিটি অনুরোধে ব্যবহারকারীর প্রমাণীকরণ যাচাই করে না (অন্য কথায়, একবার জারি করা হলে সেশন কুকি প্রত্যাহার করার কোন উপায় নেই)। এটি সাধারণত সংক্ষিপ্ত সেশনের দিকে পরিচালিত করে, ব্যবহারকারীকে ঘন ঘন সাইন ইন করতে বাধ্য করা হয় যাতে তাদের প্রমাণীকরণ পুনরায় যাচাই করা যায়, একটি পরিচিত সময়ের মধ্যে বিদ্যমান সেশনগুলিকে বাতিল করতে পাসওয়ার্ড পরিবর্তনের মতো জিনিসগুলিকে অনুমতি দেয়৷

যদি এটি একটি পদ্ধতি যা আপনি ব্যবহার করেন, আমাদের কাছে একটি প্রযুক্তিগত সমাধান রয়েছে যা আপনাকে স্বয়ংক্রিয়ভাবে রাষ্ট্রহীন প্রমাণীকরণ কুকি পুনরায় যাচাই করতে সহায়তা করতে পারে। এটি একটি মাধ্যমিক দীর্ঘস্থায়ী টোকেন থাকার মাধ্যমে কাজ করে যা আপনার বিদ্যমান স্বল্প-কালীন প্রমাণীকরণ কুকি রিফ্রেশ করতে ব্যবহার করা যেতে পারে। নতুন পরিষেবা কর্মী প্যাটার্ন ব্যবহার করে আমাদের দীর্ঘজীবী টোকেন সহ নিয়মিত "চেক ইন" করতে, ব্যবহারকারীর প্রমাণীকরণ যাচাই করতে (উদাহরণস্বরূপ, তারা সম্প্রতি তাদের পাসওয়ার্ড পরিবর্তন করেনি বা অন্যথায় সেশন প্রত্যাহার করেনি কিনা তা পরীক্ষা করে দেখতে) এবং পুনরায় ইস্যু করতে দেয়। একটি নতুন স্বল্পস্থায়ী প্রমাণীকরণ কুকি।

ওয়েবে নিরাপদ দীর্ঘ সেশনে স্থানান্তরিত করার জন্য একটি ব্যবহারিক প্রস্তাব

এখান থেকে, এই পোস্টটি একটি নতুন কৌশল বর্ণনা করে যা আমরা প্রস্তাব করছি যেটিকে আমরা 2-কুকি-হ্যান্ডঅফ (2CH) বলি। এই পদ্ধতিটি ইতিবাচক বলে মনে হচ্ছে কিনা এবং যদি তাই হয় তাহলে 2CH ব্যবহার করার জন্য সর্বোত্তম অনুশীলনগুলি নথিভুক্ত করার বিষয়ে শিল্পের সাথে কাজ করার জন্য সম্প্রদায়ের প্রতিক্রিয়া শুনতে আমরা এই নিবন্ধটি ব্যবহার করার আশা করছি।

পরিষেবা কর্মীরা একটি নতুন প্রযুক্তি যা একাধিক ব্রাউজার যেমন Chrome, Firefox, Opera দ্বারা সমর্থিত এবং শীঘ্রই এজ- এ আসছে৷ তারা আপনাকে বিদ্যমান পৃষ্ঠাগুলি পরিবর্তন না করে ক্লায়েন্টের কোডের একটি সাধারণ পয়েন্টের মাধ্যমে আপনার সাইট থেকে সমস্ত নেটওয়ার্ক অনুরোধগুলিকে বাধা দেওয়ার অনুমতি দেয়৷ এটি আপনাকে লগ ইন করা ব্যবহারকারীদের জন্য একটি "2CH কর্মী" সেট আপ করতে দেয় যা আপনার পৃষ্ঠার সমস্ত নেটওয়ার্ক অনুরোধগুলিকে বাধা দিতে পারে এবং মোবাইল অ্যাপগুলির মতোই টোকেন অদলবদল সম্পাদন করতে পারে৷

বেশিরভাগ সময় আপনার সার্ভারে ইতিমধ্যেই একটি এন্ডপয়েন্ট থাকে যা মোবাইল অ্যাপস দ্বারা ব্যবহৃত একটি নতুন স্বল্পকালীন টোকেন পেতে, সাধারণত OAuth প্রোটোকল ব্যবহার করে। ওয়েবে উপরোক্ত প্যাটার্নটি সক্ষম করার জন্য, সেই শেষপয়েন্টটিকে শুধুমাত্র আপডেট করতে হবে বুঝতে হবে কখন এটি একজন পরিষেবা কর্মী দ্বারা কল করা হচ্ছে এবং তারপরে একটি নতুন স্বল্প-কালীন সেশন কুকি ফরম্যাট করা এমনভাবে ফেরত দিতে হবে যা সাইটের অন্যান্য পৃষ্ঠাগুলি ইতিমধ্যেই প্রত্যাশা করে .

যদি আপনার সার্ভারে ইতিমধ্যে এমন একটি শেষ পয়েন্ট না থাকে তবে এটি শুধুমাত্র ব্রাউজার সেশন পরিচালনার জন্য একটি তৈরি করতে পারে।

2-কুকি-হ্যান্ডঅফ ক্রম

পরিষেবা কর্মীদের সাথে দুই-টোকেন প্যাটার্ন OAuth 2.0 প্যাটার্নকে মোটামুটিভাবে অনুসরণ করে, যদি আপনি ইতিমধ্যেই একটি OAuth টোকেন এন্ডপয়েন্ট চালান, তাহলে আপনি সম্ভবত আপনার ওয়েব প্রমাণীকরণের জন্য পরিষেবা কর্মীদের সাথে এটি পুনরায় ব্যবহার করতে পারেন।

আপনি হয়তো ভাবছেন যে ব্যবহারকারী যদি এমন একটি ব্রাউজারে যান যা পরিষেবা কর্মীদের সমর্থন করে না তাহলে কী হবে৷ আপনি যদি উপরের পদ্ধতিটি প্রয়োগ করেন তবে তারা কেবল কোনও পার্থক্য অনুভব করবে না এবং সংক্ষিপ্ত সেশনগুলি অনুভব করতে থাকবে।

আমরা একটি নমুনা ক্লায়েন্ট এবং ব্যাকএন্ড প্রকাশ করেছি। আমরা আশা করি আপনি নিজের জন্য এটি চেষ্টা করবেন এবং সেশন পরিচালনা সম্পর্কে একটি সমীক্ষার উত্তর দেবেন

,

William Denniss
Owen Campbell-Moore

আমরা সকলেই পছন্দ করি যে কীভাবে নেটিভ অ্যাপগুলি আপনাকে একবার লগইন করতে বলবে এবং তারপরে আপনাকে মনে রাখবে যতক্ষণ না আপনি তাদের লগ আউট করতে চান। দুর্ভাগ্যবশত ওয়েব সবসময় সেভাবে কাজ করে না।

এখন যেহেতু ডিভাইসগুলি, বিশেষ করে মোবাইল ডিভাইসগুলি, আরও ব্যক্তিগত, এবং আরও সাইটগুলি HTTPS-এর মাধ্যমে সমস্ত ট্র্যাফিক পাঠায় যাতে টোকেন চুরির ঝুঁকি হ্রাস পায়, ওয়েবসাইটগুলিকে তাদের স্বল্পমেয়াদী কুকি নীতিগুলি পুনর্বিবেচনা করা উচিত এবং আরও ব্যবহারকারী-বান্ধব দীর্ঘজীবী সেশনগুলি গ্রহণ করা উচিত৷

যাইহোক, এমনকি যদি আপনি সেশনটিকে দীর্ঘস্থায়ী করতে চান তবে কিছু ওয়েবসাইট প্রতিটি অনুরোধে ব্যবহারকারীর প্রমাণীকরণ যাচাই করে না (অন্য কথায়, একবার জারি করা হলে সেশন কুকি প্রত্যাহার করার কোন উপায় নেই)। এটি সাধারণত সংক্ষিপ্ত সেশনের দিকে পরিচালিত করে, ব্যবহারকারীকে ঘন ঘন সাইন ইন করতে বাধ্য করা হয় যাতে তাদের প্রমাণীকরণ পুনরায় যাচাই করা যায়, একটি পরিচিত সময়ের মধ্যে বিদ্যমান সেশনগুলিকে বাতিল করতে পাসওয়ার্ড পরিবর্তনের মতো জিনিসগুলিকে অনুমতি দেয়৷

যদি এটি একটি পদ্ধতি যা আপনি ব্যবহার করেন, আমাদের কাছে একটি প্রযুক্তিগত সমাধান রয়েছে যা আপনাকে স্বয়ংক্রিয়ভাবে রাষ্ট্রহীন প্রমাণীকরণ কুকি পুনরায় যাচাই করতে সহায়তা করতে পারে। এটি একটি মাধ্যমিক দীর্ঘস্থায়ী টোকেন থাকার মাধ্যমে কাজ করে যা আপনার বিদ্যমান স্বল্প-কালীন প্রমাণীকরণ কুকি রিফ্রেশ করতে ব্যবহার করা যেতে পারে। নতুন পরিষেবা কর্মী প্যাটার্ন ব্যবহার করে আমাদের দীর্ঘজীবী টোকেন সহ নিয়মিত "চেক ইন" করতে, ব্যবহারকারীর প্রমাণীকরণ যাচাই করতে (উদাহরণস্বরূপ, তারা সম্প্রতি তাদের পাসওয়ার্ড পরিবর্তন করেনি বা অন্যথায় সেশন প্রত্যাহার করেনি কিনা তা পরীক্ষা করে দেখতে) এবং পুনরায় ইস্যু করতে দেয়। একটি নতুন স্বল্পস্থায়ী প্রমাণীকরণ কুকি।

ওয়েবে নিরাপদ দীর্ঘ সেশনে স্থানান্তরিত করার জন্য একটি ব্যবহারিক প্রস্তাব

এখান থেকে, এই পোস্টটি একটি নতুন কৌশল বর্ণনা করে যা আমরা প্রস্তাব করছি যেটিকে আমরা 2-কুকি-হ্যান্ডঅফ (2CH) বলি। এই পদ্ধতিটি ইতিবাচক বলে মনে হচ্ছে কিনা এবং যদি তাই হয় তাহলে 2CH ব্যবহার করার জন্য সর্বোত্তম অনুশীলনগুলি নথিভুক্ত করার বিষয়ে শিল্পের সাথে কাজ করার জন্য সম্প্রদায়ের প্রতিক্রিয়া শুনতে আমরা এই নিবন্ধটি ব্যবহার করার আশা করছি।

পরিষেবা কর্মীরা একটি নতুন প্রযুক্তি যা একাধিক ব্রাউজার যেমন Chrome, Firefox, Opera দ্বারা সমর্থিত এবং শীঘ্রই এজ- এ আসছে৷ তারা আপনাকে বিদ্যমান পৃষ্ঠাগুলি পরিবর্তন না করে ক্লায়েন্টের কোডের একটি সাধারণ পয়েন্টের মাধ্যমে আপনার সাইট থেকে সমস্ত নেটওয়ার্ক অনুরোধগুলিকে বাধা দেওয়ার অনুমতি দেয়৷ এটি আপনাকে লগ ইন করা ব্যবহারকারীদের জন্য একটি "2CH কর্মী" সেট আপ করতে দেয় যা আপনার পৃষ্ঠার সমস্ত নেটওয়ার্ক অনুরোধগুলিকে বাধা দিতে পারে এবং মোবাইল অ্যাপগুলির মতোই টোকেন অদলবদল সম্পাদন করতে পারে৷

বেশিরভাগ সময় আপনার সার্ভারে ইতিমধ্যেই একটি এন্ডপয়েন্ট থাকে যা মোবাইল অ্যাপস দ্বারা ব্যবহৃত একটি নতুন স্বল্পকালীন টোকেন পেতে, সাধারণত OAuth প্রোটোকল ব্যবহার করে। ওয়েবে উপরোক্ত প্যাটার্নটি সক্ষম করার জন্য, সেই শেষপয়েন্টটিকে শুধুমাত্র আপডেট করতে হবে বুঝতে হবে কখন এটি একজন পরিষেবা কর্মী দ্বারা কল করা হচ্ছে এবং তারপরে একটি নতুন স্বল্প-কালীন সেশন কুকি ফরম্যাট করা এমনভাবে ফেরত দিতে হবে যা সাইটের অন্যান্য পৃষ্ঠাগুলি ইতিমধ্যেই প্রত্যাশা করে .

যদি আপনার সার্ভারে ইতিমধ্যে এমন একটি শেষ পয়েন্ট না থাকে তবে এটি শুধুমাত্র ব্রাউজার সেশন পরিচালনার জন্য একটি তৈরি করতে পারে।

2-কুকি-হ্যান্ডঅফ ক্রম

পরিষেবা কর্মীদের সাথে দুই-টোকেন প্যাটার্ন OAuth 2.0 প্যাটার্নকে মোটামুটিভাবে অনুসরণ করে, যদি আপনি ইতিমধ্যেই একটি OAuth টোকেন এন্ডপয়েন্ট চালান, তাহলে আপনি সম্ভবত আপনার ওয়েব প্রমাণীকরণের জন্য পরিষেবা কর্মীদের সাথে এটি পুনরায় ব্যবহার করতে পারেন।

আপনি হয়তো ভাবছেন যে ব্যবহারকারী যদি এমন একটি ব্রাউজারে যান যা পরিষেবা কর্মীদের সমর্থন করে না তাহলে কী হবে৷ আপনি যদি উপরের পদ্ধতিটি প্রয়োগ করেন তবে তারা কেবল কোনও পার্থক্য অনুভব করবে না এবং সংক্ষিপ্ত সেশনগুলি অনুভব করতে থাকবে।

আমরা একটি নমুনা ক্লায়েন্ট এবং ব্যাকএন্ড প্রকাশ করেছি। আমরা আশা করি আপনি নিজের জন্য এটি চেষ্টা করবেন এবং সেশন পরিচালনা সম্পর্কে একটি সমীক্ষার উত্তর দেবেন