מעבר מקובצי cookie שלא מחולקים למחיצות (Partitions) לקובצי cookie מחולקים למחיצות

בעת העברת האתר שלכם לקובצי Cookie שמחולק למחיצות, ייתכן שתיתקלו בהתנהגות לא צפויה אם קובץ Cookie עם חלוקה למחיצות (Partitions) וגם קובץ Cookie ללא מחיצות (Partitions) נמצאים באותם שמות עבור כל לקוח נתון.

הגדרה של קובץ Cookie עם חלוקה למחיצות לא תבטל או תחליף קובץ Cookie קיים ללא מחיצות באותו שם. שניהם יהיו קיימים כל עוד קובצי Cookie של צד שלישי מופעלים, אבל נמצאים במאגרים נפרדים של קובצי Cookie. כשמשביתים קובצי Cookie של צד שלישי, מתקבל רק הקובץ שמחולק למחיצות. אם שני קובצי ה-cookie קיימים, אי אפשר לדעת באופן פרוגרמטי איזה מהם מחולק למחיצות ואיזה לא. מצב כזה עלול לגרום להתנהגות לא צפויה.

אפשר לפתור את הבעיה בשתי דרכים: 1. מבטלים את קובץ ה-cookie שרוצים להחליף. 2. שינוי השמות של קובצי ה-cookie

שיקולים עיקריים

בעת המעבר לקובצי cookie מחולקים למחיצות, זכור את הדברים הבאים:

  1. אין דרך לקבוע באופן פרוגרמטי אם קובץ cookie מחולק למחיצות או לא. עם זאת, אפשר לקבוע את מצב החלוקה למחיצות של קובץ ה-cookie ב-Chrome DevTools.
  2. קובצי cookie מחולקים לא מחליפים קובצי cookie שאינם מחולקים למחיצות – שני קובצי cookie שזהים בדיוק (כלומר, יש להם אותם מאפיינים כמו שם, דומיין או נתיב) יטופלו כקובצי cookie נפרדים אם רק לאחד מהם יש את המאפיין Partitioned.
  3. עדיף למנוע מצב שבו יהיה גם קובץ Cookie שמחולק למחיצות וגם קובץ Cookie ללא מחיצה באותו שם שיוחזר באותה קריאה לרשת.

פג תוקף קובצי ה-cookie שברצונך להחליף

אם האתר או השירות שלכם לא יכולים לאפשר שינוי בשם, תוכלו ליצור קובץ Cookie חדש עם חלוקה למחיצות, שהתוקף שלו יפוג. אין דרך לדעת אם קובץ ה-cookie מחולק למחיצות, אבל כותרות Set-Cookie ללא המאפיין Partitioned לא ישפיעו על קובצי cookie שלא מחולקים למחיצות.

הדוגמה הבאה מראה איך לבטל את התוקף של קובץ cookie שעבר חלוקה למחיצות (example) ולהשאיר את קובצי ה-cookie מחולקים למחיצות (Partitions) לא יושפעו, גם אם יש להם אותו שם. קובץ Cookie חדש עם חלוקה למחיצות (Partitions) בשם cookieName יתווסף או יתעדכן אם הוא כבר קיים.

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

שינוי השמות של קובצי ה-cookie

הדרך הטובה ביותר להבטיח מעבר חלק היא להשתמש בשמות שונים עבור קובצי ה-cookie שמחולק למחיצות (Partitions) ובלתי מחולקות למחיצות (Partitions). לדוגמה, אם יש לכם קובץ Cookie ללא מחיצה בשם 'example', תוכלו להעביר אותו לקובץ Cookie עם חלוקה למחיצות.

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

מכיוון שפגיעת התוקף של קובץ ה-cookie לא נחשפת באופן פרוגרמטי, אין דרך להגדיר את התפוגה של קובץ ה-cookie החדש כך שחפוף לתפוגה של קובץ ה-cookie שלא מחולק למחיצות. רענון הערך של קובץ ה-cookie יכול להיות מעשי במהלך התהליך הזה.

תחזוקה של קובצי Cookie שמחולקות למחיצות וגם קובצי Cookie שלא מחולקות למחיצות

במהלך תקופת המעבר כדאי לתחזק שני קובצי cookie מסונכרנים נפרדים: אחד שמחולק למחיצות (Partitions) ואחד שלא. לדוגמה, יכול להיות שיש לכם גם קובצי cookie auth וגם auth-partitioned, כאשר הקובץ השני הוגדר עם המאפיין Partitioned.

בכל פעם שהערך מתעדכן, עליך לנסות להגדיר את שני קובצי ה-cookie.

  • בלקוחות שחוסמים קובצי cookie של צד שלישי אבל עדיין לא תומכים ב-CHIPS: קובצי cookie לא יתקבלו.
  • בלקוחות שחוסמים קובצי cookie של צד שלישי ותומכים ב-CHIPS: קובץ ה-cookie auth יידחה, אבל קובץ ה-cookie auth-partitioned יאושר.
  • בלקוחות שלא חוסמים קובצי cookie של צד שלישי, לא משנה אם הם תומכים ב-CHIPS: המערכת מקבלת גם את auth וגם את auth-partitioned.

כשהאפליקציה צריכה לקרוא את קובץ ה-cookie לאימות, קודם צריך לחפש את auth-partitioned, אבל אם אתם צריכים לבטל באופן זמני את השינוי, תוכלו לחזור ולחפש את קובץ ה-cookie auth.

אחרי שתוודאו שקובצי ה-cookie של רוב המשתמשים רועננו, אפשר להוציא משימוש את קובץ ה-cookie auth-partitioned ולהוסיף את המאפיין Partitioned לקובץ cookie הרגיל לאימות.