בעת העברת האתר שלכם לקובצי Cookie שמחולק למחיצות, ייתכן שתיתקלו בהתנהגות לא צפויה אם קובץ Cookie עם חלוקה למחיצות (Partitions) וגם קובץ Cookie ללא מחיצות (Partitions) נמצאים באותם שמות עבור כל לקוח נתון.
הגדרה של קובץ Cookie עם חלוקה למחיצות לא תבטל או תחליף קובץ Cookie קיים ללא מחיצות באותו שם. שניהם יהיו קיימים כל עוד קובצי Cookie של צד שלישי מופעלים, אבל נמצאים במאגרים נפרדים של קובצי Cookie. כשמשביתים קובצי Cookie של צד שלישי, מתקבל רק הקובץ שמחולק למחיצות. אם שני קובצי ה-cookie קיימים, אי אפשר לדעת באופן פרוגרמטי איזה מהם מחולק למחיצות ואיזה לא. מצב כזה עלול לגרום להתנהגות לא צפויה.
אפשר לפתור את הבעיה בשתי דרכים: 1. מבטלים את קובץ ה-cookie שרוצים להחליף. 2. שינוי השמות של קובצי ה-cookie
שיקולים עיקריים
בעת המעבר לקובצי cookie מחולקים למחיצות, זכור את הדברים הבאים:
- אין דרך לקבוע באופן פרוגרמטי אם קובץ cookie מחולק למחיצות או לא. עם זאת, אפשר לקבוע את מצב החלוקה למחיצות של קובץ ה-cookie ב-Chrome DevTools.
- קובצי cookie מחולקים לא מחליפים קובצי cookie שאינם מחולקים למחיצות – שני קובצי cookie שזהים בדיוק (כלומר, יש להם אותם מאפיינים כמו שם, דומיין או נתיב) יטופלו כקובצי cookie נפרדים אם רק לאחד מהם יש את המאפיין
Partitioned
. - עדיף למנוע מצב שבו יהיה גם קובץ 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
יידחה, אבל קובץ ה-cookieauth-partitioned
יאושר. - בלקוחות שלא חוסמים קובצי cookie של צד שלישי, לא משנה אם הם תומכים ב-CHIPS: המערכת מקבלת גם את
auth
וגם אתauth-partitioned
.
כשהאפליקציה צריכה לקרוא את קובץ ה-cookie לאימות, קודם צריך לחפש את auth-partitioned
, אבל אם אתם צריכים לבטל באופן זמני את השינוי, תוכלו לחזור ולחפש את קובץ ה-cookie auth
.
אחרי שתוודאו שקובצי ה-cookie של רוב המשתמשים רועננו, אפשר להוציא משימוש את קובץ ה-cookie auth-partitioned
ולהוסיף את המאפיין Partitioned לקובץ cookie הרגיל לאימות.