যখন একটি ওয়েব সার্ভার একটি সম্পদের জন্য একটি অনুরোধে সাড়া দেয়, তখন সার্ভারটি তার প্রতিক্রিয়া সহ একটি 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: কুকিজ