কুকি ভিত্তিক প্রমাণীকরণ কীভাবে কাজ করে?


210

কুকি ভিত্তিক প্রমাণীকরণ কীভাবে কাজ করে তার কোনও পদক্ষেপে আমাকে কী বর্ণনা দিতে পারেন? আমি প্রমাণীকরণ বা কুকিগুলির সাথে জড়িত কোনও কিছুই করি নি। ব্রাউজারের কী করা দরকার? সার্ভারের কী করা দরকার? কোন ক্রমে? কীভাবে আমরা জিনিসগুলিকে সুরক্ষিত রাখতে পারি?

আমি বিভিন্ন ধরণের প্রমাণীকরণ এবং কুকিজ সম্পর্কে পড়ছি তবে আমি কীভাবে দুজনকে একসাথে ব্যবহার করতে পারি তার একটি প্রাথমিক বিবরণ চাই - আমি কেবল পড়েছি যে তারা প্রায়শই একসাথে ব্যবহৃত হয় তবে কীভাবে তার বিবরণ পাওয়া যায়নি।


উত্তর:


162

একটি কুকি মূলত অভিধানে কেবল একটি আইটেম is প্রতিটি আইটেমের একটি কী এবং একটি মান রয়েছে। প্রমাণীকরণের জন্য, কীটি 'ব্যবহারকারীর নাম' এর মতো কিছু হতে পারে এবং মানটি ব্যবহারকারীর নাম হবে। প্রতিবার আপনি কোনও ওয়েবসাইটে অনুরোধ করবেন, আপনার ব্রাউজারটি অনুরোধে কুকিজ অন্তর্ভুক্ত করবে এবং হোস্ট সার্ভার কুকিগুলি পরীক্ষা করবে। সুতরাং যেমন প্রমাণীকরণ স্বয়ংক্রিয়ভাবে করা যেতে পারে।

একটি কুকি সেট করতে, আপনাকে সার্ভারকে অনুরোধের পরে ফেরত পাঠানো প্রতিক্রিয়ার সাথে এটি যুক্ত করতে হবে। এর পরে ব্রাউজারটি সাড়া পেয়ে কুকি যুক্ত করবে।

আপনি কুকি সার্ভারের পক্ষে কনফিগার করতে পারেন এমন বিভিন্ন বিকল্প রয়েছে যেমন সমাপ্তির সময় বা এনক্রিপশন। একটি এনক্রিপ্ট করা কুকি প্রায়শই স্বাক্ষরিত কুকি হিসাবে উল্লেখ করা হয়। মূলত সার্ভারটি অভিধান আইটেমটিতে কী এবং মানটি এনক্রিপ্ট করে, তাই কেবল সার্ভারই ​​তথ্যটি ব্যবহার করতে পারে। সুতরাং কুকি নিরাপদ হবে।

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


আমি যা বুঝতে পারি তা হ'ল ব্রাউজারটি কুকিকে আবার একই ডোমেনে প্রেরণ করতে সক্ষম হয়। এর সাথে সম্পর্কিত কি যখন দুটি ডোমেনের মধ্যে পার্থক্য হয় ব্রাউজার অ্যাকাউন্টে সাবডোমেন গ্রহণ করে?
আকাশ

1
কোনও ব্রাউজার কীভাবে সাবডোমেনগুলি পরিচালনা করে তার জন্য আপনি HTTP শিরোনামে বিকল্পগুলি সেট করতে পারেন।
কনর প্যাট্রিক

287

আমি বুঝতে পেরেছি যে এটি বেশ কয়েক দেরী, তবে আমি ভেবেছিলাম কনরের উত্তরটি প্রসারিত করে আলোচনায় আরও কিছুটা যুক্ত করতে পারি।

কুকি ভিত্তিক প্রমাণীকরণ কীভাবে কাজ করে তার কোনও পদক্ষেপে আমাকে কী বর্ণনা দিতে পারেন? আমি প্রমাণীকরণ বা কুকিগুলির সাথে জড়িত কোনও কিছুই করি নি। ব্রাউজারের কী করা দরকার? সার্ভারের কী করা দরকার? কোন ক্রমে? কীভাবে আমরা জিনিসগুলিকে সুরক্ষিত রাখতে পারি?

পদক্ষেপ 1: ক্লায়েন্ট> সাইন আপ

অন্য কিছুর আগে ব্যবহারকারীর সাইন আপ করতে হবে। ক্লায়েন্ট তার / তার ব্যবহারকারীর নাম এবং পাসওয়ার্ড সহ সার্ভারে একটি HTTP অনুরোধ পোস্ট করে।

পদক্ষেপ 2: সার্ভার> হ্যান্ডলিং সাইন আপ

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

পদক্ষেপ 3: ক্লায়েন্ট> ব্যবহারকারী লগইন

এখন আপনার ব্যবহারকারীর লগ ইন He

পদক্ষেপ 4: সার্ভার> লগইন যাচাই করা হচ্ছে

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

পদক্ষেপ 5: সার্ভার> অ্যাক্সেস টোকেন তৈরি করা

যদি সবকিছু চেক আউট হয় তবে আমরা একটি অ্যাক্সেস টোকেন তৈরি করতে যাচ্ছি যা ব্যবহারকারীর সেশনটি অনন্যভাবে চিহ্নিত করে। এখনও সার্ভারে, আমরা অ্যাক্সেস টোকেন দিয়ে দুটি জিনিস করি:

  1. এটি ব্যবহারকারীর সাথে সম্পর্কিত ডেটাবেজে সংরক্ষণ করুন
  2. ক্লায়েন্টকে ফেরত দিতে প্রতিক্রিয়া কুকিতে এটি সংযুক্ত করুন। ব্যবহারকারীর সেশনটি সীমাবদ্ধ করার জন্য একটি মেয়াদোত্তীকরণের তারিখ / সময় নির্ধারণ করতে ভুলবেন না

এখন থেকে, কুকিগুলি ক্লায়েন্ট এবং সার্ভারের মধ্যে করা প্রতিটি অনুরোধের (এবং প্রতিক্রিয়া) সাথে সংযুক্ত থাকবে।

পদক্ষেপ:: ক্লায়েন্ট> পৃষ্ঠা অনুরোধ করা হচ্ছে

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

এই কমান্ডের সাহায্যে আপনি শুরু করতে হবে। লগআউট করার পরে কুকিজ সাফ করতে ভুলবেন না!


10
বর্ণনার জন্য ধন্যবাদ। আমি কেবল ভাবছি কীভাবে অ্যাক্সেস টোকেন সুরক্ষা সরবরাহ করে? কোনও আক্রমণকারী যদি কুকি চুরি করে, কোনও প্রমাণিত লগ ইন হওয়া ব্যবহারকারী হিসাবে পোজ দেয়? বা এটি এসএসএল দ্বারা সুরক্ষিত?
রিচিক

6
@ রিচিক এসএসএল অনুরোধ / প্রতিক্রিয়াগুলির সময় বাধা রক্ষা করে তবে কোনও আক্রমণকারী আপনার কুকিজের শেষ পয়েন্টগুলিতে অ্যাক্সেস করতে পারে (যেমন আপনার ব্রাউজার)। তাত্ত্বিকভাবে, কুকির মেয়াদ শেষ না হওয়া অবধি তারা লগ ইন হওয়া ব্যবহারকারী হিসাবে ভঙ্গ করতে পারে। আমি বলি "তাত্ত্বিকভাবে" কারণ উপরের প্রয়োগটি এটি পরিচালনা করে না। উপরের প্রয়োগে, আক্রমণকারীটির আপনার ডাটাবেসে অ্যাক্সেস টোকেন আপডেট না হওয়া পর্যন্ত (যেমন পরবর্তী লগইন) অ্যাক্সেস থাকবে।
pllx

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

3
ধন্যবাদ আমাকে বলতে দীর্ঘ সময় লাগল! আপনার ব্যাখ্যার জন্য ধন্যবাদ
রিচিক

4
@ মানুচাদা আপনি টোকেন / সেশন কী এর সাথে ব্যবহারকারীর আইপি ঠিকানা এবং অন্যান্য সনাক্তকারী পরামিতি যেমন ব্যবহারকারী-এজেন্ট ইত্যাদি সংরক্ষণ করতে পারেন তবে যদি অনুরোধটি একটি বৈধ কুকি নিয়ে আসে তবে ভুল আইপি, ব্রাউজার ইত্যাদি থেকে থাকে তবে আপনি অনুরোধ অস্বীকার করুন এবং আবার প্রমাণীকরণের জন্য ব্যবহারকারীকে লগইন পৃষ্ঠায় পুনর্নির্দেশ করুন।
ফ্যালকোগার

18

কুকি-ভিত্তিক প্রমাণীকরণ

কুকিজ ভিত্তিক প্রমাণীকরণ এই 4 টি পদক্ষেপে সাধারণত কাজ করে -

  1. ব্যবহারকারী লগইন ফর্মটিতে একটি ব্যবহারকারীর নাম এবং পাসওয়ার্ড সরবরাহ করে এবং লগ ইন ক্লিক করে।
  2. অনুরোধটি করার পরে, সার্ভারটি ডাটাবেসে জিজ্ঞাসাবাদ করে ব্যাকএন্ডে ব্যবহারকারীকে বৈধতা দেয়। যদি অনুরোধটি বৈধ হয় তবে এটি ডাটাবেস থেকে প্রাপ্ত ব্যবহারকারী তথ্য ব্যবহার করে একটি সেশন তৈরি করবে এবং সেগুলি সংরক্ষণ করবে, প্রতিটি সেশনের জন্য সেশন আইডি নামে একটি অনন্য আইডি তৈরি করা হয়, ডিফল্টরূপে সেশন আইডি ব্রাউজারের মাধ্যমে ক্লায়েন্টকে দেওয়া হবে।
  3. ব্রাউজার প্রতিটি পরবর্তী অনুরোধে এই সেশন আইডি জমা দেবে, সেশন আইডি ডাটাবেসগুলির বিরুদ্ধে যাচাই করা হয়, এই সেশন আইডি ওয়েবসাইটের ভিত্তিতে কোন ক্লায়েন্টের সাথে সম্পর্কিত সেশনটি সনাক্ত করবে এবং তারপরে অনুরোধটি অ্যাক্সেস দেবে।

  4. কোনও ব্যবহারকারী একবার অ্যাপ্লিকেশন থেকে লগ আউট করার পরে, সেশনটি ক্লায়েন্ট-সাইড এবং সার্ভার-সাইড উভয়ই নষ্ট হয়ে যায়।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.