কুকিজ বোঝা

একটি কুকি হল ব্রাউজারে সংরক্ষিত ডেটার একটি অংশ যা একটি ওয়েবসাইটকে এর বৈশিষ্ট্যগুলি কার্যকর করার জন্য প্রয়োজনীয় অবস্থা এবং অন্যান্য তথ্য বজায় রাখতে ব্যবহৃত হয়।

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

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

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

কর্মে কুকিজ

বলুন আপনার একটি ব্লগ আছে যেখানে আপনি আপনার ব্যবহারকারীদের কাছে একটি "নতুন কী" প্রোমো প্রদর্শন করতে চান৷ ব্যবহারকারীরা প্রচারটি খারিজ করতে পারেন এবং তারপরে তারা কিছু সময়ের জন্য এটি আর দেখতে পাবেন না। আপনি সেই পছন্দটি একটি কুকিতে সংরক্ষণ করতে পারেন, এটিকে এক মাসে (2,600,000 সেকেন্ড) মেয়াদ শেষ হওয়ার জন্য সেট করতে পারেন এবং এটি শুধুমাত্র HTTPS-এর মাধ্যমে পাঠাতে পারেন৷ সেই শিরোনামটি এইরকম দেখতে হবে:

Set-Cookie: promo_shown=1; Max-Age=2600000; Secure
একটি প্রতিক্রিয়া হিসাবে একটি সার্ভার থেকে একটি ব্রাউজারে তিনটি কুকি পাঠানো হচ্ছে৷
সার্ভার Set-Cookie হেডার ব্যবহার করে কুকি সেট করে।

যখন আপনার পাঠক এই প্রয়োজনীয়তাগুলি পূরণ করে এমন একটি পৃষ্ঠা দেখেন-তারা একটি সুরক্ষিত সংযোগে থাকে এবং কুকিটি এক মাসেরও কম বয়সী হয়-তাদের ব্রাউজার তার অনুরোধে এই শিরোনামটি পাঠাবে:

Cookie: promo_shown=1
একটি অনুরোধে একটি ব্রাউজার থেকে একটি সার্ভারে তিনটি কুকি পাঠানো হচ্ছে৷
আপনার ব্রাউজার Cookie হেডারে ফেরত পাঠায়।

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

→ document.cookie = "promo_shown=1; Max-Age=2600000; Secure"
← "promo_shown=1; Max-Age=2600000; Secure"

document.cookie পড়া বর্তমান প্রেক্ষাপটে অ্যাক্সেসযোগ্য সমস্ত কুকি আউটপুট করবে, প্রতিটি কুকি একটি সেমিকোলন দ্বারা পৃথক করা হবে:

→ document.cookie;
← "promo_shown=1; color_theme=peachpuff; sidebar_loc=left"
জাভাস্ক্রিপ্ট ব্রাউজারের মধ্যে কুকিজ অ্যাক্সেস করছে
JavaScript document.cookie ব্যবহার করে কুকিজ অ্যাক্সেস করতে পারে।

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

প্রথম পক্ষ এবং তৃতীয় পক্ষের কুকি কি?

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

একই পৃষ্ঠায় বিভিন্ন অনুরোধ থেকে একটি ব্রাউজারে তিনটি কুকি পাঠানো হচ্ছে
কুকি এক পৃষ্ঠায় বিভিন্ন ডোমেন থেকে আসতে পারে।

উপরে থেকে উদাহরণটি অব্যাহত রেখে, ধরা যাক আপনার একটি ব্লগ পোস্টে একটি বিশেষভাবে আশ্চর্যজনক বিড়ালের একটি ছবি রয়েছে এবং এটি /blog/img/amazing-cat.png এ হোস্ট করা হয়েছে। কারণ এটি এমন একটি আশ্চর্যজনক চিত্র, অন্য ব্যক্তি এটি সরাসরি তাদের সাইটে ব্যবহার করে৷ যদি একজন দর্শক আপনার ব্লগে আসেন এবং তার কাছে promo_shown কুকি থাকে, তাহলে তারা যখন অন্য ব্যক্তির সাইটে amazing-cat.png দেখেন তখন সেই কুকিটি ছবির জন্য অনুরোধে পাঠানো হবে । এটি কারও জন্য বিশেষভাবে উপযোগী নয় যেহেতু এই অন্য ব্যক্তির সাইটে promo_shown ব্যবহার করা হয় না, এটি অনুরোধে ওভারহেড যোগ করছে।

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

একই কুকি তিনটি ভিন্ন প্রসঙ্গে পাঠানো হচ্ছে
বিভিন্ন পৃষ্ঠা পরিদর্শন করার সময় তৃতীয় পক্ষের প্রসঙ্গে একটি কুকি পাঠানো হয়।

ওয়েবের সাংস্কৃতিক বৈশিষ্ট্যগুলির মধ্যে একটি হল এটি ডিফল্টরূপে খোলা থাকে। এটি তার একটি অংশ যা এত লোকের পক্ষে সেখানে তাদের নিজস্ব সামগ্রী এবং অ্যাপ তৈরি করা সম্ভব করেছে৷ যাইহোক, এটি নিরাপত্তা এবং গোপনীয়তার উদ্বেগও এনেছে। ক্রস-সাইট অনুরোধ জালিয়াতি (CSRF) আক্রমণগুলি এই সত্যের উপর নির্ভর করে যে কুকিগুলি একটি নির্দিষ্ট উত্সের যে কোনও অনুরোধের সাথে সংযুক্ত থাকে, অনুরোধটি যেই শুরু করুক না কেন। উদাহরণস্বরূপ, আপনি যদি evil.example পরিদর্শন করেন তবে এটি your-blog.example এ অনুরোধগুলি ট্রিগার করতে পারে এবং আপনার ব্রাউজার আনন্দের সাথে সংশ্লিষ্ট কুকিজ সংযুক্ত করবে৷ যদি আপনার ব্লগ এই অনুরোধগুলিকে কীভাবে বৈধতা দেয় সে বিষয়ে সতর্ক না হয় তাহলে evil.example পোস্ট মুছে ফেলা বা তাদের নিজস্ব সামগ্রী যোগ করার মতো অ্যাকশনগুলিকে ট্রিগার করতে পারে৷

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

আপনি উপযুক্ত SameSite অ্যাট্রিবিউট সেট করে একটি কুকি দিয়ে আপনার অভিপ্রায় স্পষ্টভাবে বলতে পারেন।

আপনার প্রথম পক্ষের কুকি শনাক্ত করতে এবং উপযুক্ত গুণাবলী সেট করতে, প্রথম পক্ষের কুকি রেসিপি দেখুন।