ডেভেলপারদের "পার্টিশনড" স্টোরেজে একটি কুকি বেছে নেওয়ার অনুমতি দিন, প্রতিটি শীর্ষ-স্তরের সাইটের জন্য একটি পৃথক কুকি জার সহ।
বাস্তবায়নের অবস্থা
- Chrome 114 এবং পরবর্তীতে ডিফল্টরূপে সমর্থিত।
- একটি অরিজিন ট্রায়াল, এখন সম্পূর্ণ, Chrome 100 থেকে 116 পর্যন্ত উপলব্ধ ছিল৷
- পরীক্ষা করার অভিপ্রায় এবং জাহাজের অভিপ্রায় পড়ুন।
চিপস কি?
স্বাধীন পার্টিশনড স্টেট (CHIPS) থাকা কুকিজ ডেভেলপারদের পার্টিশনড স্টোরেজে একটি কুকি বেছে নেওয়ার সুযোগ দেয়, প্রতিটি শীর্ষ-স্তরের সাইটের জন্য আলাদা কুকি জার থাকে, যা ব্যবহারকারীর গোপনীয়তা এবং নিরাপত্তা উন্নত করে।
পার্টিশন ছাড়াই, তৃতীয় পক্ষের কুকিজ পরিষেবাগুলিকে ব্যবহারকারীদের ট্র্যাক করতে এবং অনেক সম্পর্কহীন শীর্ষ-স্তরের সাইট থেকে তাদের তথ্য সংযুক্ত করতে সক্ষম করতে পারে। এটি ক্রস-সাইট ট্র্যাকিং নামে পরিচিত।
তৃতীয় পক্ষের কুকিজ ব্লক করা হলে, CHIPS, স্টোরেজ অ্যাক্সেস API এবং সম্পর্কিত ওয়েবসাইট সেটগুলি হল ক্রস-সাইট কনটেক্সট, যেমন iframes থেকে কুকিজ পড়ার এবং লেখার একমাত্র উপায়।

CHIPS একটি নতুন কুকি অ্যাট্রিবিউট, Partitioned , প্রবর্তন করেছে, যা শীর্ষ-স্তরের প্রসঙ্গ অনুসারে পার্টিশন করা ক্রস-সাইট কুকিগুলিকে সমর্থন করে।
সেট-কুকি হেডার:
Set-Cookie: __Host-name=value; Secure; Path=/; SameSite=None; Partitioned;
জাভাস্ক্রিপ্ট:
document.cookie="__Host-name=value; Secure; Path=/; SameSite=None; Partitioned;"
একটি পার্টিশন করা থার্ড-পার্টি কুকি সেই টপ-লেভেল সাইটের সাথে সংযুক্ত থাকে যেখানে এটি প্রাথমিকভাবে সেট করা থাকে এবং অন্য কোথাও থেকে অ্যাক্সেস করা যায় না। এইভাবে, থার্ড-পার্টি পরিষেবা দ্বারা সেট করা কুকিগুলি শুধুমাত্র টপ-লেভেল সাইটের একই এমবেডেড প্রেক্ষাপটের মধ্যেই পড়া যাবে যেখানে সেগুলি প্রাথমিকভাবে সেট করা হয়েছিল।

পার্টিশন করা কুকির ক্ষেত্রে, যখন কোনও ব্যবহারকারী সাইট A পরিদর্শন করেন এবং সাইট C থেকে এমবেড করা কন্টেন্ট পার্টিশন করা অ্যাট্রিবিউট সহ একটি কুকি সেট করেন, তখন কুকিটি একটি পার্টিশন করা জারে সংরক্ষণ করা হয় যা শুধুমাত্র কুকির জন্য নির্ধারিত হয় যা সাইট C সাইট A তে এমবেড করার সময় সেট করে। ব্রাউজারটি কেবল তখনই সেই কুকি পাঠাবে যখন শীর্ষ-স্তরের সাইট A থাকে।
যখন ব্যবহারকারী একটি নতুন সাইট পরিদর্শন করেন, উদাহরণস্বরূপ সাইট B, তখন একটি এমবেডেড C ফ্রেম সেই কুকিটি গ্রহণ করবে না যা সাইট A তে C এম্বেড করার সময় সেট করা হয়েছিল।
যদি কোনও ব্যবহারকারী শীর্ষ স্তরের ওয়েবসাইট হিসেবে সাইট C পরিদর্শন করেন, তাহলে A-তে এমবেড করার সময় C যে পার্টিশন করা কুকি সেট করেছিল তাও সেই অনুরোধে পাঠানো হবে না।

ব্যবহারের ক্ষেত্রে
উদাহরণস্বরূপ, retail.example সাইটটি তার সাইটে একটি সাপোর্ট চ্যাট বক্স এম্বেড করার জন্য একটি তৃতীয় পক্ষের পরিষেবা support.chat.example এর সাথে কাজ করতে চাইতে পারে। আজকাল অনেক এম্বেডযোগ্য চ্যাট পরিষেবা অবস্থা সংরক্ষণের জন্য কুকিজের উপর নির্ভর করে।

support.chat.example এম্বেড করা। ক্রস-সাইট কুকি সেট করার ক্ষমতা না থাকলে, support.chat.example বিকল্প, প্রায়শই আরও জটিল, অবস্থা সংরক্ষণের পদ্ধতি খুঁজে বের করতে হবে। বিকল্পভাবে, এটি শীর্ষ-স্তরের পৃষ্ঠায় এম্বেড করা প্রয়োজন যা ঝুঁকিগুলি উপস্থাপন করে কারণ এটি support.chat.example স্ক্রিপ্টকে retail.example-এ উন্নত সুবিধা প্রদান করে, যেমন প্রমাণীকরণ কুকিজ অ্যাক্সেস করার ক্ষমতা।
পার্টিশনবিহীন কুকির সাথে সম্পর্কিত ঝুঁকি ছাড়াই, CHIPS ক্রস-সাইট কুকি ব্যবহার চালিয়ে যাওয়ার একটি সহজ বিকল্প প্রদান করে।
CHIPS-এর ব্যবহারের উদাহরণ হল এমন যেকোনো পরিস্থিতি যেখানে ক্রস-সাইট সাবরিসোর্সের জন্য সেশন বা স্থায়ী অবস্থার কিছু ধারণা প্রয়োজন যা একটি একক শীর্ষ-স্তরের সাইটে ব্যবহারকারীর কার্যকলাপের সাথে সম্পর্কিত, যেমন:
- তৃতীয় পক্ষের চ্যাট এম্বেড
- তৃতীয় পক্ষের মানচিত্র এম্বেড করা
- তৃতীয় পক্ষের পেমেন্ট এম্বেড
- সাবরিসোর্স সিডিএন লোড ব্যালেন্সিং
- হেডলেস সিএমএস প্রদানকারীরা
- অবিশ্বস্ত ব্যবহারকারীর সামগ্রী পরিবেশনের জন্য স্যান্ডবক্স ডোমেন (যেমন googleusercontent.com এবং githubusercontent.com)
- তৃতীয় পক্ষের CDN যেগুলি কুকি ব্যবহার করে এমন কন্টেন্ট পরিবেশন করে যা প্রথম পক্ষের সাইটের প্রমাণীকরণ স্থিতি দ্বারা অ্যাক্সেস-নিয়ন্ত্রিত হয় (উদাহরণস্বরূপ, তৃতীয় পক্ষের CDN-তে হোস্ট করা সোশ্যাল মিডিয়া সাইটের প্রোফাইল ছবি)
- ফ্রন্ট-এন্ড ফ্রেমওয়ার্ক যা তাদের অনুরোধে কুকি ব্যবহার করে দূরবর্তী API-এর উপর নির্ভর করে
- প্রতি প্রকাশকের জন্য স্টেট স্কোপযুক্ত এম্বেড করা বিজ্ঞাপন (উদাহরণস্বরূপ, সেই ওয়েবসাইটের জন্য ব্যবহারকারীদের বিজ্ঞাপন পছন্দ ক্যাপচার করা)
কেন CHIPS একটি অপ্ট-ইন পার্টিশনিং মডেল ব্যবহার করে
যেখানে পার্টিশনবিহীন তৃতীয় পক্ষের কুকিজ অ্যাক্সেস ব্লক করা হয়েছে, সেখানে পার্টিশন করার জন্য আরও কয়েকটি পদ্ধতির চেষ্টা করা হয়েছে।
ফায়ারফক্স ঘোষণা করেছে যে তারা তাদের ETP স্ট্রিক মোড এবং প্রাইভেট ব্রাউজিং মোডে ডিফল্টরূপে সমস্ত তৃতীয়-পক্ষের কুকি পার্টিশন করছে , তাই সমস্ত ক্রস-সাইট কুকি টপ-লেভেল সাইট দ্বারা পার্টিশন করা হয়। যাইহোক, তৃতীয়-পক্ষের অপ্ট-ইন ছাড়াই কুকি পার্টিশন করার ফলে অপ্রত্যাশিত বাগ দেখা দিতে পারে, কারণ কিছু তৃতীয়-পক্ষ পরিষেবা এমন সার্ভার তৈরি করেছে যা একটি পার্টিশনবিহীন তৃতীয়-পক্ষের কুকি আশা করে।
সাফারি পূর্বে হিউরিস্টিকের উপর ভিত্তি করে কুকিজ পার্টিশন করার চেষ্টা করেছিল , কিন্তু অবশেষে ডেভেলপারদের বিভ্রান্তির কারণ হিসেবে উল্লেখ করে সেগুলিকে সম্পূর্ণরূপে ব্লক করার সিদ্ধান্ত নিয়েছে। সম্প্রতি, সাফারি একটি অপ্ট-ইন ভিত্তিক মডেলে আগ্রহ প্রকাশ করেছে ।
পার্টিশন করা কুকির বিদ্যমান বাস্তবায়ন থেকে CHIPS কে আলাদা করে তোলে তৃতীয় পক্ষের অপ্ট-ইন। (অপার্টিশন করা) থার্ড-পার্টি কুকিজ অপ্রচলিত হয়ে গেলে ক্রস-পার্টি অনুরোধে পাঠানোর জন্য কুকিগুলিকে একটি নতুন বৈশিষ্ট্যের সাথে সেট করতে হবে।
যদিও থার্ড-পার্টি কুকিজ এখনও বিদ্যমান, Partitioned অ্যাট্রিবিউট আরও সীমাবদ্ধ, আরও নিরাপদ ধরণের কুকি আচরণের জন্য একটি অপ্ট-ইন প্রদান করে। CHIPS হল পরিষেবাগুলিকে তৃতীয়-পক্ষের কুকি ছাড়াই ভবিষ্যতে একটি মসৃণ রূপান্তর করতে সহায়তা করার জন্য একটি গুরুত্বপূর্ণ পদক্ষেপ।
কুকি পার্টিশনের কারিগরি নকশা
আজকাল, কুকিজ সেই সাইটের হোস্টনেম বা ডোমেনে কী করা হয় যা তাদের সেট করে, অর্থাৎ তাদের হোস্ট কী ।
উদাহরণস্বরূপ, https://support.chat.example থেকে কুকিজের জন্য, হোস্ট কী হল ("support.chat.example") ।
CHIPS-এর অধীনে, পার্টিশনিং-এ অংশগ্রহণকারী কুকিগুলি তাদের হোস্ট কী এবং পার্টিশন কী- তে ডাবল-কী করা হবে।
কুকির পার্টিশন কী হল সেই সাইট ( স্কিম এবং নিবন্ধনযোগ্য ডোমেন ) যেখানে ব্রাউজারটি অনুরোধের শুরুতে যে শীর্ষ-স্তরের URL পরিদর্শন করছিল, সেই শেষ বিন্দুতে যেখানে কুকি সেট করা হয়েছিল।
আগের উদাহরণে, যেখানে https://support.chat.example https://retail.example এ এমবেড করা আছে, সেখানে শীর্ষ-স্তরের URL হল https://retail.example ।
সেই ক্ষেত্রে পার্টিশন কী হল ("https", "retail.example") ।
একইভাবে, একটি অনুরোধের পার্টিশন কী হল সেই শীর্ষ-স্তরের URL এর সাইট যেখানে ব্রাউজারটি অনুরোধের শুরুতে পরিদর্শন করছে। ব্রাউজারগুলিকে কেবল সেই কুকির মতো একই পার্টিশন কী ব্যবহার করে অনুরোধগুলিতে Partitioned বৈশিষ্ট্য সহ একটি কুকি পাঠাতে হবে।
আগের উদাহরণে দেখানো কুকি কীটি CHIPS-এর আগে এবং পরে কেমন দেখায় তা এখানে দেওয়া হল।

চিপসের আগে
key=("support.chat.example")
চিপসের পরে
key={("support.chat.example"),("https", "retail.example")}
নিরাপত্তা নকশা
ভালো নিরাপত্তা অনুশীলনকে উৎসাহিত করার জন্য, CHIPS-এর মাধ্যমে, কুকিজ শুধুমাত্র সুরক্ষিত প্রোটোকল দ্বারা সেট করা হয় এবং পাঠানো হয়।
- পার্টিশন করা কুকিজ অবশ্যই
Secureদিয়ে সেট করতে হবে। - পার্টিশন করা কুকিজ সেট করার সময়
__Host-প্রিফিক্স ব্যবহার করার পরামর্শ দেওয়া হয় যাতে সেগুলি হোস্টনেমে (এবং নিবন্ধনযোগ্য ডোমেনে নয়) আবদ্ধ হয়।
উদাহরণ:
Set-Cookie: __Host-example=34d8g; SameSite=None; Secure; Path=/; Partitioned;
CHIPS এর বিকল্প
স্টোরেজ অ্যাক্সেস এপিআই এবং সংশ্লিষ্ট সম্পর্কিত ওয়েবসাইট সেট (RWS) হল ওয়েব প্ল্যাটফর্ম প্রক্রিয়া যা নির্দিষ্ট, ব্যবহারকারী-মুখী উদ্দেশ্যে সীমিত ক্রস-সাইট কুকি অ্যাক্সেস সক্ষম করে।
এগুলি CHIPS পার্টিশনের বিকল্প যেখানে ক্রস-সাইট, পার্টিশনবিহীন কুকগুলিতে অ্যাক্সেস প্রয়োজন।
একাধিক সম্পর্কিত সাইটে এমবেড করা কোনও পরিষেবাতে একই কুকি উপলব্ধ করার জন্য আপনার যদি একই কুকির প্রয়োজন হয়, তাহলে স্টোরেজ অ্যাক্সেস API এবং সম্পর্কিত ওয়েবসাইট সেটগুলি বিবেচনা করুন।
CHIPS একটি পরিষেবাকে একাধিক সাইট জুড়ে একটি বিচ্ছিন্ন উপাদান হিসেবে কাজ করার ক্ষমতা প্রদান করে, যেখানে একই কুকি একাধিক সাইট জুড়ে উপলব্ধ থাকার প্রয়োজন হয় না। যদি পরিষেবাটি একটি পার্টিশন করা কুকি সেট করে, তাহলে এর পার্টিশন কীটি শীর্ষ-স্তরের সাইট হবে এবং সেই কুকি পরিষেবাটি ব্যবহার করে অন্যান্য সাইটগুলিতে উপলব্ধ হবে না।
সম্পর্কিত ওয়েবসাইট সেট ডিজাইন স্টোরেজ অ্যাক্সেস API-এর উপর নির্ভর করে এবং CHIPS পার্টিশনের সাথে একীভূত হয় না। যদি আপনার এমন কোনও ব্যবহারের ক্ষেত্রে থাকে যা RWS-এর মধ্যে সাইট জুড়ে একটি শেয়ার্ড কুকি পার্টিশনের উপর নির্ভর করে তবে আপনি GitHub সমস্যাটির উদাহরণ এবং প্রতিক্রিয়া প্রদান করতে পারেন।
ডেমো
এই ডেমোটি আপনাকে পার্টিশন করা কুকিজ কীভাবে কাজ করে এবং আপনি DevTools-এ কীভাবে সেগুলি পরীক্ষা করতে পারেন তা ব্যাখ্যা করবে।
সাইট A সাইট B থেকে একটি আইফ্রেম এম্বেড করে যা জাভাস্ক্রিপ্ট ব্যবহার করে দুটি কুকি সেট করে: একটি পার্টিশন করা এবং একটি আনপার্টিশন করা কুকি। সাইট B document.cookie ব্যবহার করে সেই অবস্থান থেকে অ্যাক্সেসযোগ্য সমস্ত কুকি প্রদর্শন করে।
যখন তৃতীয় পক্ষের কুকিজ ব্লক করা হয়, তখন সাইট B শুধুমাত্র ক্রস-সাইট প্রসঙ্গে Partitioned বৈশিষ্ট্য সহ কুকি সেট এবং অ্যাক্সেস করতে সক্ষম হবে।
যখন তৃতীয় পক্ষের কুকিজ অনুমোদিত হয়, তখন সাইট B পার্টিশনবিহীন কুকি সেট এবং অ্যাক্সেস করতে সক্ষম হয়।

পূর্বশর্ত
- Chrome ১১৮ বা তার বেশি।
-
chrome://flags/#test-third-party-cookie-phaseoutএ যান এবং এই সেটিংটি সক্ষম করুন।
পার্টিশন করা কুকিজ পরীক্ষা করতে DevTools ব্যবহার করুন
- https://chips-site-a.glitch.me দেখুন।
- DevTools খুলতে
Control+Shift+J(অথবা Mac-এCommand+Option+J) টিপুন। - অ্যাপ্লিকেশন ট্যাবে ক্লিক করুন।
- অ্যাপ্লিকেশন > স্টোরেজ > কুকিজ এ নেভিগেট করুন।
-
https://chips-site-b.glitch.meক্লিক করুন।
DevTools নির্বাচিত উৎস থেকে সমস্ত কুকি প্রদর্শন করবে।

সাইট B শুধুমাত্র ক্রস-সাইট প্রসঙ্গে পার্টিশন করা কুকি সেট করতে পারে, পার্টিশন না করা কুকি ব্লক করা হবে:
- আপনার টপ লেভেল সাইট
https://chips-site-a.glitch.meএর পার্টিশন কী সহ__Host-partitioned-cookieদেখতে পাওয়া উচিত।

- সাইট বি তে যান ক্লিক করুন।
- DevTools-এ, Application > Storage > Cookies- এ নেভিগেট করুন।
-
https://chips-site-b.glitch.meক্লিক করুন।

এই পরিস্থিতিতে, যেহেতু আপনি সাইট B-তে শীর্ষ-স্তরের প্রসঙ্গে আছেন, তাই এটি উভয় কুকি সেট এবং অ্যাক্সেস করতে পারে:
-
unpartitioned-cookieএকটি খালি পার্টিশন কী আছে। -
__Host-partitioned-cookieকুকিতেhttps://chips-site-b.glitch.meপার্টিশন কী আছে।

আপনি যদি সাইট A-তে ফিরে যান, তাহলে unpartitioned-cookie এখন ব্রাউজারে সংরক্ষিত হবে, কিন্তু এটি সাইট A থেকে অ্যাক্সেসযোগ্য হবে না।
- সাইট A তে যান ক্লিক করুন।
- নেটওয়ার্ক ট্যাবে ক্লিক করুন।
-
https://chips-site-b.glitch.meক্লিক করুন। - কুকিজ ট্যাবে ক্লিক করুন।
সাইট A-তে থাকাকালীন, আপনি শীর্ষ স্তরের সাইট https://chips-site-a.glitch.me এর পার্টিশন কী সহ __Host-partitioned-cookie দেখতে পাবেন।

যদি আপনি "show filtered out cookies requests" চেক করেন, তাহলে DevTools দেখাবে যে পার্টিশনবিহীন কুকিটি ব্লক করা আছে, হলুদ রঙে হাইলাইট করা হয়েছে একটি টুলটিপ সহ: "This cookie was blocked due to user preferences" ।

অ্যাপ্লিকেশন > স্টোরেজ > কুকিজ বিভাগে https://chips-site-b.glitch.me এ ক্লিক করলে দেখা যাবে:
- খালি পার্টিশন কী সহ
unpartitioned-cookie। -
__Host-partitioned-cookieপার্টিশন কী সহhttps://chips-site-a.glitch.me।

__Host-partitioned-cookie কুকিতে https://chips-site-a.glitch.me পার্টিশন কী থাকে। unpartitioned-cookie দেখানো হয়, কিন্তু সাইট A তে এমবেড করা থাকলে সাইট B iframe এ এটি অ্যাক্সেসযোগ্য হয় না।কুকিজ সাফ করুন
ডেমো রিসেট করতে, সাইটের সমস্ত কুকিজ সাফ করুন:
- DevTools খুলতে
Control+Shift+J(অথবা Mac-এCommand+Option+J) টিপুন। - অ্যাপ্লিকেশন ট্যাবে ক্লিক করুন।
- অ্যাপ্লিকেশন > স্টোরেজ > কুকিজ এ নেভিগেট করুন।
-
https://chips-site-b.glitch.meএ ডান-ক্লিক করুন। - সাফ করুন ক্লিক করুন।
রিসোর্স
- গিটহাব : ব্যাখ্যাকারীটি পড়ুন, প্রশ্ন উত্থাপন করুন এবং আলোচনাটি অনুসরণ করুন ।