কুকি বৈশিষ্ট্য, কুকি বৈশিষ্ট্য

যখন একটি ওয়েব সার্ভার একটি সম্পদের জন্য একটি অনুরোধে সাড়া দেয়, তখন সার্ভারটি তার প্রতিক্রিয়া সহ একটি Set-Cookie হেডার অন্তর্ভুক্ত করতে পারে। সেই শিরোনামটি আপনার ব্রাউজারকে একটি কুকি সংরক্ষণ করতে বলে। যেমন: Set-Cookie:cat=tabbyকুকিজ কি? কুকিজ কিভাবে কাজ করে তা ব্যাখ্যা করে।

একটি কুকির নাম এবং মান প্রদান করার পাশাপাশি, Set-Cookie কুকি সেট করা আছে কিনা এবং সেগুলির মেয়াদ শেষ হলে নিয়ন্ত্রণ করার জন্য বৈশিষ্ট্যগুলি অন্তর্ভুক্ত করতে পারে। কুকি বৈশিষ্ট্য সেমিকোলন দ্বারা পৃথক করা হয়. যেমন:

    Set-Cookie:cat=tabby; Secure; HTTPOnly; Expires=Tue, 31 Dec 2999 23:59:59 GMT;

এই নিবন্ধটি সবচেয়ে গুরুত্বপূর্ণ কুকি বৈশিষ্ট্য ব্যাখ্যা করে:

এইচটিটিপি কুকিজ ব্যবহার করা কুকির বৈশিষ্ট্যগুলিকে আরও প্রযুক্তিগত বিশদে ব্যাখ্যা করে৷

নিরাপদ

যদি একটি Set-Cookie হেডারে Secure অন্তর্ভুক্ত থাকে, তাহলে কুকি শুধুমাত্র HTTPS প্রোটোকল ব্যবহার করে এমন এনক্রিপ্ট করা অনুরোধের সাথে অন্তর্ভুক্ত করা হবে: কুকি HTTP অনুরোধে অন্তর্ভুক্ত করা হবে না। এটি মধ্যস্থতাকারী আক্রমণ বন্ধ করতে সাহায্য করতে পারে, যেখানে একজন আক্রমণকারী গোপনে ব্রাউজার এবং সার্ভারের মধ্যে যোগাযোগে হস্তক্ষেপ করে — তথ্য প্রেরণ করতে এবং সম্ভাব্যভাবে এটিকে পরিবর্তন করতে।

👉 আপনার সমস্ত কুকির জন্য ডিফল্টরূপে Secure অন্তর্ভুক্ত করা উচিত।

শুধুমাত্র HTTP

যদি একটি Set-Cookie হেডারে HTTPOnly অন্তর্ভুক্ত থাকে, তাহলে document.cookie ব্যবহার করে কুকি অ্যাক্সেস করা যাবে না। এটি নির্দিষ্ট ধরণের আক্রমণ থেকে রক্ষা করতে সাহায্য করে যা কুকিজকে লক্ষ্য করে।

👉 আপনার সমস্ত কুকির জন্য ডিফল্টরূপে HTTPOnly অন্তর্ভুক্ত করা উচিত। আপনি জাভাস্ক্রিপ্ট ব্যবহার করে কুকি মান সেট করতে এবং পেতে সক্ষম হলে শুধুমাত্র বাদ দিন।

একই সাইট

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

SameSite অ্যাট্রিবিউট নিয়ন্ত্রণ করে যে একটি অনুরোধে তৃতীয় পক্ষের কুকি অন্তর্ভুক্ত করা হবে কিনা। এটির তিনটি সম্ভাব্য মান রয়েছে: Strict , Lax , বা None

👉 SameSite=Lax হল ডিফল্ট যদি কোন মান সেট করা না থাকে। SameSite=None ক্রস-সাইট কুকিজকে অনুমতি দেয় না, কিন্তু এর মানে যেখানে তৃতীয় পক্ষের কুকি বিধিনিষেধ রয়েছে সেখানে কুকিজ ব্লক করা হবে।

আরও জানুন: তৃতীয় পক্ষের কুকি কি?

কড়া

কুকিটি শুধুমাত্র কুকির মূল সাইটে থাকা একটি পৃষ্ঠার অনুরোধের প্রতিক্রিয়া হিসাবে পাঠানো হবে। উদাহরণস্বরূপ: কল্পনা করুন একজন ব্যবহারকারী cats.example এ যান এবং SameSite=Strict অ্যাট্রিবিউট সহ একটি কুকি সেট করেছেন। পরবর্তীতে, ব্যবহারকারী একটি ভিন্ন সাইটে থাকে এবং তারা cats.example এ একটি পৃষ্ঠার লিঙ্ক অনুসরণ করে। সেট করা কুকি সেই অনুরোধে অন্তর্ভুক্ত করা হবে না।

লাক্স

এটি Strict মতো একইভাবে কাজ করে, ব্যবহারকারী যখন কুকির মূল সাইটের লিঙ্ক অনুসরণ করে তখন ব্রাউজারটি কুকিও অন্তর্ভুক্ত করবে। (আগের Strict উদাহরণে, ব্যবহারকারী cats.example এর লিঙ্কটি অনুসরণ করলে কুকিটি অন্তর্ভুক্ত করা হবে ।) Lax হল ডিফল্ট, যদি একটি Set-Cookie শিরোনামে কোন SameSite বৈশিষ্ট্য অন্তর্ভুক্ত না থাকে।

কোনোটিই নয়

কোন বাধা নেই: কুকি একটি অনুরোধের সাথে অন্তর্ভুক্ত করা হবে, তা ক্রস-সাইট হোক বা না হোক। SameSite=None এর সাথে, কুকিতে অবশ্যই Secure অ্যাট্রিবিউট থাকতে হবে।

বিভাজিত

এই বৈশিষ্ট্যটি আপনাকে বিভাজনকৃত সঞ্চয়স্থানে একটি কুকি বেছে নিতে দেয়, প্রতি শীর্ষ-স্তরের সাইট প্রতি একটি পৃথক "কুকি জার" সহ। কুকি ডবল-কিড, শীর্ষ-স্তরের সাইট এবং সেইসাথে এটি সেট করে এমন ডোমেন দ্বারা।

উদাহরণস্বরূপ: কল্পনা করুন যে ওয়েবসাইট A এবং ওয়েবসাইট B উভয়ই ওয়েবসাইট C থেকে একটি আইফ্রেম অন্তর্ভুক্ত করে। ওয়েবসাইট A-তে iframe দ্বারা সেট করা একটি বিভাজিত কুকি ওয়েবসাইট B-এর iframe দ্বারা অ্যাক্সেস করা যাবে না: AC কুকি BC কুকি থেকে আলাদা।

👉 আপনি যদি তৃতীয় পক্ষের কুকি তৈরি করেন তবে ডিফল্টরূপে Partitioned অ্যাট্রিবিউটটি অন্তর্ভুক্ত করা উচিত, যদি না আপনি স্পষ্টভাবে জানেন যে এটি একাধিক এম্বেড জুড়ে শেয়ার করা প্রয়োজন।

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

একটি Partitioned বৈশিষ্ট্য সহ কুকিগুলি চিপস নামে পরিচিত: স্বাধীন বিভাজিত রাজ্য থাকার কুকিজ৷

পার্টিশন করা কুকিতে অবশ্যই Secure অ্যাট্রিবিউট থাকতে হবে।

আরও জানুন: স্বাধীন বিভাজিত রাষ্ট্র থাকার কুকিজ

মেয়াদ শেষ এবং সর্বোচ্চ বয়স

আপনি একটি Expires তারিখ এবং সময়, বা সেকেন্ডের মধ্যে একটি Max-Age নির্দিষ্ট করতে পারেন, যার পরে একটি কুকি মুছে ফেলা উচিত এবং আর পাঠানো হবে না৷ যেমন:

  • Set-Cookie:cat=tabby; Expires=Tue, 31 Dec 2999 23:59:59 GMT;
  • Set-Cookie:cat=tabby; Max-Age=86400

আপনি যদি Max-Age বা Expires বৈশিষ্ট্য উল্লেখ না করেন, তাহলে বর্তমান অধিবেশন শেষ হলে একটি কুকি মুছে ফেলা হবে। এই ধরনের কুকি কখনও কখনও একটি সেশন কুকি হিসাবে পরিচিত হয়।

👉 আপনার বর্তমান সেশনের চেয়ে দীর্ঘস্থায়ী হওয়ার জন্য কুকির প্রয়োজন না হলে Max-Age এবং Expires বৈশিষ্ট্যগুলি বাদ দিন৷ ব্রাউজারগুলির মেয়াদ শেষ হয়ে যায় কুকিজ , তাই ভবিষ্যতের বছরগুলির মেয়াদ শেষ করার কোন মানে নেই৷ পরিবর্তে, কোনো ব্যবহারকারী আপনার সাইটে পুনরায় ভিজিট করলে আপনার কুকি রিফ্রেশ করার কথা বিবেচনা করা উচিত।

ডোমেইন

যদি একটি Set-Cookie শিরোলেখের একটি Domain বৈশিষ্ট্য থাকে, তাহলে কুকি নির্দিষ্ট ডোমেনের অনুরোধের সাথে অন্তর্ভুক্ত করা হবে এবং এর যেকোনো সাবডোমেন।

যদি একটি Set-Cookie হেডারে একটি Domain বৈশিষ্ট্য না থাকে, তাহলে সাবডোমেনের অনুরোধের সাথে কুকি অন্তর্ভুক্ত করা হবে না।

অন্য কথায়, Domain অ্যাট্রিবিউট সহ ডোমেনের সীমাবদ্ধতা হ্রাস করে

উদাহরণস্বরূপ, cats.example ওয়েবসাইট থেকে একটি প্রতিক্রিয়া সহ :

  • Set-Cookie:cat=tabby
    কুকি শুধুমাত্র cats.example এর অনুরোধের সাথে অন্তর্ভুক্ত করা হবে
  • Set-Cookie:cat=tabby; Domain=cats.example
    cats.example এর অনুরোধের সাথে কুকি অন্তর্ভুক্ত করা হবে, এবং সাবডোমেনে রিসোর্সের জন্য যেকোন অনুরোধ যেমন fluffy.cats.example বা user.assets.cats.example

👉 সাবডোমেনের অনুরোধের সাথে অন্তর্ভুক্ত করার জন্য আপনার একটি কুকির প্রয়োজন না হলে, একটি Domain বৈশিষ্ট্য অন্তর্ভুক্ত করবেন না।

পথ

যদি একটি Path বৈশিষ্ট্য একটি Set-Cookie প্রতিক্রিয়া শিরোনামে অন্তর্ভুক্ত করা হয়, তবে যে কুকি সেট করা হয়েছে তা শুধুমাত্র URL-এর অনুরোধে অন্তর্ভুক্ত করা হবে (কুকি সেট করে এমন সাইটে!) যা Path মানের সাথে মেলে৷

যেমন:

  • Set-Cookie:cat=tabby; Path=/articles
    /articles দিয়ে শুরু হওয়া যেকোনো URL পাথের অনুরোধের জন্য কুকি অন্তর্ভুক্ত করা হবে:
    https://cats.example/articles/tabby/index.html
    https://cats.example/articles/breeds/tabby/index.html
    https://cats.example/images/tabby.jpg
    https://cats.example/en/articles/tabby/index.html
  • Set-Cookie:cat=tabby; Path=/
    সাইটের যেকোনো URL-এ সমস্ত অনুরোধ কুকি অন্তর্ভুক্ত করবে।

যদি একটি Set-Cookie প্রতিক্রিয়া শিরোনাম একটি Path মান না থাকে, তাহলে কুকি শুধুমাত্র একই ডিরেক্টরির অনুরোধের সাথে অন্তর্ভুক্ত করা হবে। উদাহরণস্বরূপ, কল্পনা করুন যে cats.example/images/tabby.jpg. এর অনুরোধের প্রতিক্রিয়া হিসাবে একটি cat=tabby কুকি সেট করা হয়েছে৷ যদি কোন Path সেট করা না থাকে, কুকি শুধুমাত্র cats.example/images ডিরেক্টরির মধ্যে ফাইলের জন্য অনুরোধের সাথে অন্তর্ভুক্ত করা হবে।

👉 কুকি অন্তর্ভুক্ত করার জন্য আপনার সাইটের যেকোনো পাথের সমস্ত অনুরোধের প্রয়োজন হলে একটি কুকি সহ Path=/ অন্তর্ভুক্ত করুন৷ সুরক্ষা সুরক্ষার জন্য Path নির্ভর করবেন না

ডেমো

  • 1pc.glitch.me : প্রথম পক্ষের কুকি ডেমো
  • 3pc.glitch.me : তৃতীয় পক্ষের কুকি ডেমো

টুলস

আরও জানুন