যখন একটি ওয়েব সার্ভার একটি সম্পদের জন্য একটি অনুরোধে সাড়া দেয়, তখন সার্ভারটি তার প্রতিক্রিয়া সহ একটি 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 অনুরোধে অন্তর্ভুক্ত করা হবে না। এটি মধ্যস্থতাকারী আক্রমণ বন্ধ করতে সাহায্য করতে পারে, যেখানে একজন আক্রমণকারী গোপনে ব্রাউজার এবং সার্ভারের মধ্যে যোগাযোগে হস্তক্ষেপ করে — তথ্য প্রেরণ করতে এবং সম্ভাব্যভাবে এটিকে পরিবর্তন করতে।
শুধুমাত্র HTTP
যদি একটি Set-Cookie হেডারে HTTPOnly অন্তর্ভুক্ত থাকে, তাহলে JavaScript কুকি অ্যাক্সেস করতে পারে না, উদাহরণস্বরূপ document.cookie ব্যবহার করে। এটি নির্দিষ্ট ধরণের আক্রমণ থেকে রক্ষা করতে সাহায্য করে যা কুকিজকে লক্ষ্য করে।
একইসাইট
আপনি যে সাইটটি পরিদর্শন করছেন তার থেকে ভিন্ন একটি সাইট থেকে একটি সংস্থানের জন্য একটি অনুরোধ হল একটি ক্রস-সাইট অনুরোধ৷ একটি ক্রস-সাইট অনুরোধের প্রতিক্রিয়া হিসাবে সেট করা একটি কুকি হল তৃতীয় পক্ষের কুকি ।
SameSite অ্যাট্রিবিউট নিয়ন্ত্রণ করে যে একটি অনুরোধে তৃতীয় পক্ষের কুকি অন্তর্ভুক্ত করা হবে কিনা। এটির তিনটি সম্ভাব্য মান রয়েছে: Strict , Lax , বা 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 বৈশিষ্ট্য সহ কুকিগুলি চিপস নামে পরিচিত: স্বাধীন বিভাজিত রাজ্য থাকার কুকিজ৷
পার্টিশন করা কুকিতে অবশ্যই 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 বৈশিষ্ট্য উল্লেখ না করেন, তাহলে বর্তমান অধিবেশন শেষ হলে একটি কুকি মুছে ফেলা হবে। এই ধরনের কুকি কখনও কখনও একটি সেশন কুকি হিসাবে পরিচিত হয়।
ডোমেইন
যদি একটি 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
পথ
যদি একটি 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 ডিরেক্টরির মধ্যে ফাইলের জন্য অনুরোধের সাথে অন্তর্ভুক্ত করা হবে।
ডেমো
- 1pc.glitch.me : প্রথম পক্ষের কুকি ডেমো
- 3pc.glitch.me : তৃতীয় পক্ষের কুকি ডেমো
টুলস
- Chrome DevTools-এ কুকিগুলি দেখুন, যোগ করুন, সম্পাদনা করুন এবং মুছুন৷
- গোপনীয়তা স্যান্ডবক্স বিশ্লেষণ টুল
আরও জানুন
- প্রথম পক্ষের কুকি রেসিপি
- কুকিজ কি?
- তৃতীয় পক্ষের কুকিজ কি?
- HTTP অনুরোধ এবং প্রতিক্রিয়া
- কুকি টুল
- কুকি ডেমো
- HTTP কুকিজ ব্যবহার করে
- SameSite কুকি ব্যাখ্যা করা হয়েছে
- OWASP: কুকিজ