انتقال از کوکی های بدون پارتیشن به کوکی های پارتیشن بندی شده

هنگام انتقال سایت خود به کوکی های پارتیشن بندی شده، ممکن است با رفتار غیرمنتظره ای مواجه شوید اگر یک کوکی پارتیشن بندی شده و پارتیشن بندی نشده با نام های یکسان برای هر مشتری مشخص وجود داشته باشد.

تنظیم یک کوکی پارتیشن بندی شده، کوکی پارتیشن بندی نشده موجود با همین نام را لغو یا جایگزین نمی کند. تا زمانی که کوکی‌های شخص ثالث فعال باشند، هر دو وجود خواهند داشت، اما در شیشه‌های کوکی جداگانه. وقتی کوکی‌های شخص ثالث غیرفعال هستند، فقط کوکی‌های پارتیشن‌بندی شده پذیرفته می‌شوند. اگر هر دو کوکی وجود داشته باشند، از نظر برنامه‌ریزی نمی‌توان تشخیص داد که کدام یک پارتیشن بندی شده و کدام یک نیست، و این می‌تواند منجر به رفتار غیرمنتظره شود.

دو گزینه ممکن برای رفع این مشکل وجود دارد: 1. کوکی که جایگزین آن هستید منقضی شود. 2. نام کوکی های خود را تغییر دهید.

ملاحظات کلیدی

هنگام انتقال به کوکی های پارتیشن بندی شده، موارد زیر را در نظر داشته باشید:

  1. هیچ راهی برای تعیین پارتیشن بندی یا عدم پارتیشن بندی یک کوکی وجود ندارد. با این حال، می‌توانید وضعیت پارتیشن بندی یک کوکی را در ابزار توسعه کروم تعیین کنید.
  2. کوکی‌های پارتیشن‌بندی‌شده، کوکی‌های پارتیشن‌نشده را بازنویسی نمی‌کنند - دو کوکی که دقیقاً یکسان هستند (یعنی ویژگی‌های یکسانی مانند نام، دامنه یا مسیر دارند) اگر فقط یکی از آنها ویژگی Partitioned را داشته باشد، به عنوان کوکی‌های جداگانه تلقی می‌شوند.
  3. بهتر است از موقعیتی اجتناب کنید که در آن یک کوکی پارتیشن بندی شده و یک کوکی پارتیشن نشده با همان نام در یک تماس شبکه بازگردانده شوند.

کوکی هایی را که جایگزین می کنید منقضی کنید

اگر سایت یا سرویس شما قادر به تغییر نام نیست، می توانید یک کوکی پارتیشن بندی شده جدید ایجاد کنید در حالی که کوکی پارتیشن بندی نشده موجود منقضی می شود. در حالی که هیچ راهی برای تعیین اینکه آیا یک کوکی پارتیشن بندی شده است یا نه وجود ندارد، سرصفحه های Set-Cookie بدون ویژگی Partitioned بر کوکی هایی که پارتیشن بندی نشده اند تأثیر نمی گذارد.

مثال زیر نشان می دهد که چگونه می توان کوکی پارتیشن بندی نشده ای به نام example منقضی کرد و کوکی های پارتیشن بندی شده را بدون تاثیر گذاشت، حتی اگر نام یکسانی داشته باشند. یک کوکی پارتیشن بندی شده جدید به نام cookieName در صورت وجود اضافه یا به روز می شود.

Set-Cookie: example=-1;HttpOnly;SameSite=None;Secure;Max-Age:0
Set-Cookie: cookieName=value;Secure;SameSite=None;MaxAge=34560000;Partitioned

نام کوکی های خود را تغییر دهید

قوی ترین راه برای اطمینان از اینکه یک انتقال بدون درز وجود دارد، استفاده از نام های مختلف برای کوکی های پارتیشن بندی شده و پارتیشن نشده است. به عنوان مثال، اگر یک کوکی پارتیشن نشده به نام "مثال" دارید، می توانید آن را به یک کوکی پارتیشن بندی شده منتقل کنید.

Set-Cookie: example-partitioned=value;Secure;SameSite=None;MaxAge=34560000;Partitioned

از آنجایی که انقضای کوکی از نظر برنامه‌ریزی نمایش داده نمی‌شود، هیچ راهی برای تنظیم انقضای کوکی جدید با انقضای کوکی بدون پارتیشن وجود ندارد. ممکن است تازه کردن ارزش کوکی در طول این فرآیند عملی باشد.

کوکی های پارتیشن بندی شده و پارتیشن نشده را حفظ کنید

در طول دوره انتقال، دو کوکی همگام‌سازی شده جداگانه را در نظر بگیرید: یکی که پارتیشن بندی شده و دیگری که نیست. برای مثال، ممکن است هم کوکی‌های auth و auth-partitioned داشته باشید، جایی که دومی با ویژگی Partitioned تنظیم شده است.

هر بار که مقدار به روز می شود، باید سعی کنید هر دو کوکی را تنظیم کنید.

  • در مورد مشتریانی که کوکی های شخص ثالث را مسدود می کنند اما هنوز از CHIPS پشتیبانی نمی کنند: هیچ یک از کوکی ها پذیرفته نمی شود.
  • در مورد مشتریانی که کوکی‌های شخص ثالث را مسدود می‌کنند و از CHIPS پشتیبانی می‌کنند: کوکی auth رد می‌شود، اما کوکی auth-partitioned پذیرفته می‌شود.
  • در مورد مشتریانی که کوکی‌های شخص ثالث را مسدود نمی‌کنند، صرف نظر از اینکه از CHIPS پشتیبانی می‌کنند یا خیر: هر دو auth و auth-partitioned پذیرفته می‌شوند.

هنگامی که برنامه شما نیاز به خواندن کوکی احراز هویت دارد، ابتدا باید به دنبال auth-partitioned باشید. اما اگر مجبورید موقتاً تغییر را برگردانید، می‌توانید دوباره به دنبال کوکی auth بگردید.

هنگامی که مشخص کردید که اکثر کاربران کوکی های خود را به روز کرده اند، کوکی auth-partitioned می تواند بازنشسته شود و ویژگی Partitioned می تواند به کوکی تأیید اعتبار معمولی اضافه شود.