אין עוגיות מפחידות

עוגיות הכי טעימות כשהן טריות, אז מהם המתכונים העדכניים ביותר שיעזרו לכם ליהנות מהעונה המפחידה בלי עוגיות מקולקלות?

קובצי cookie הכי טעימים כשהם טריים, אז מהם המתכונים העדכניים ביותר שיעזרו לכם ליהנות מהעונה המפחידה בלי קובצי cookie ישנים?

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

באופן כללי, קובצי cookie מספקים מאגר פשוט של מפתח/ערך שנשלח בין הדפדפן לשרת. כך אפשר לספק פונקציונליות שימושית באתר, כמו שמירת העדפה: theme=bats או שמירת מזהה הסשן של משתמש שמחובר לחשבון.

קובץ cookie של צד שלישי שמכיל ערך פשוט כמו theme=bats או fav_pumpkins=us-nyc

אם קובץ ה-Cookie הזה נמצא בשימוש באותו אתר שהגדיר אותו, אנחנו נוטים לכנות אותו 'קובץ Cookie מהדומיין הנוכחי'. אם הוא משמש כחלק מאתר אחר מאשר האתר שהגדיר אותו, אנחנו קוראים לו 'קובץ Cookie של צד שלישי'. לדוגמה, קובץ ה-cookie‏ theme=bats יהיה של צד ראשון אם אכנס לאותו אתר שהגדיר אותו, אבל אם הוא נכלל ב-iframe או במשאב אחר באתרים שונים כחלק מאתר אחר, הוא יהיה קובץ cookie של צד שלישי.

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

קובץ cookie של צד שלישי שמכיל מזהה ייחודי שמאפשר לאתר של הצד השלישי לעקוב אחרי משתמש באינטרנט

קובצי cookie מהדומיין הנוכחי כברירת מחדל

כבר עשינו התקדמות בדרך! בעבר, הגדרה של קובץ cookie רגיל: theme=pumpkins הייתה נשלחת בכל ההקשרים: באותו אתר או באתרים שונים. רוב האתרים רוצים שכל קובצי ה-cookie שלהם יישלחו רק בהקשר של אותו אתר. אפשר לשלוט בכך באמצעות המאפיין SameSite בקובץ ה-cookie. לדוגמה:

Set-Cookie: theme=bats; SameSite=Lax

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

עכשיו, SameSite=Lax הוא ברירת המחדל. אם תגדירו רק את theme=bats, הוא יישלח רק בהקשר של אותו אתר.

ערך ברירת המחדל SameSite=Lax מונע שליחת קובץ cookie בהקשר של צד שלישי

אם רוצים קובץ cookie באתרים שונים או של צד שלישי (אולי אתם צריכים שהעיצוב יוצג בווידג'ט מוטמע), צריך לציין את הפרטים הבאים:

Set-Cookie: theme=bats; SameSite=None; Secure
הערך המפורש SameSite=None מסמן את קובץ ה-cookie כך שיישלח בהקשרים שבין כמה אתרים

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

קובצי cookie מהדומיין הנוכחי טעימים עוד יותר

ברירת המחדל אמנם השתפרה קצת, אבל עדיין יש מקום לשיפור המתכון הזה. הנה טעימת חינם:

Set-Cookie:  __Host-theme=bats;
  Secure;
  Path=/;
  HttpOnly;
  Max-Age=7776000;
  SameSite=Lax;

כך תקבלו קובץ cookie מהדומיין הנוכחי שיישאר מוגבל לדומיין אחד בלבד, עם חיבורים מאובטחים, ללא גישה באמצעות JavaScript, שתוקף יפוג באופן אוטומטי לפני שהוא יהפוך ללא תקף, ו (כמובן!) מותרת רק בהקשרים באותו אתר.

עוגיות טעימות יותר עם צ'יפס!

אחד מהמאפיינים הקסומים של האינטרנט הוא היכולת ליצור כמה אתרים יחד. נניח שאני רוצה ליצור ווידג'ט מפה שמאפשר לאתרים אחרים להציג את הסיורים הטובים ביותר בשטחי גידול דלעת או את המסלולים הטובים ביותר לליל כל הקדושים. השירות שלי משתמש בקובץ cookie כדי לאפשר למשתמשים לשמור את ההתקדמות שלהם במסלול. הבעיה היא שאותו קובץ cookie של צד שלישי יישלח באתר של מטען דלעת כמו באתר של ליל כל הקדושים. אני לא רוצה לעקוב אחרי משתמשים בין אתרים, אבל הדפדפן משתמש רק בקופסה אחת של קובצי cookie – אין לי דרך להפריד את השימוש הזה!

קובצי cookie בין אתרים עם SameSite=None עדיין נכנסים לאותו 'קופסת' של קובצי cookie

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

Set-Cookie: __Host-route=123;
  SameSite=None;
  Secure;
  Path=/;
  Partitioned;
המאפיין Partitioned בקובץ ה-cookie יוצר מאגרי קובצי cookie נפרדים לכל אתר ברמה העליונה

במקום לשתף את קופסת הביסקוויטים, כל אחד מקבל קופסה משלו! פשוט יותר, בטוח יותר והגייני יותר.

שלחנו עכשיו את הכוונה לשלוח את קובצי ה-cookie עם מצב מפוצל עצמאי (CHIPS) ב-Chrome 109. המשמעות היא שהם יהיו זמינים לבדיקה בגרסת בטא בדצמבר, ולאחר מכן יהיו מוכנים לגרסת Stable בינואר 2023. אז אם אתם מחפשים החלטה לשנה החדשה לשפר את המתכון של קובצי ה-cookie באתר, כדאי לבדוק אם אתם יכולים להתחיל לפזר צ'יפים בקובצי ה-cookie באתרים שונים.

הזמנת קובצי cookie למסיבת 'קבוצות מאינטראקציה ישירה'

בנושא המשוב מהמפתחים, הרבה מכם הבהירו גם שיש מצבים שבהם אתם משתפים שירותים בין אתרים שבשליטתכם, ואתם רוצים להשתמש בקובצי cookie בכל אחד מהם – אבל לא לאפשר להם להישלח בהקשרים של צד שלישי אמיתי. לדוגמה, יכול להיות שיש לכם pretty-pumpkins.com ו-pretty-pumpkins.co.uk. יכול להיות שיש לכם מערכת כניסה יחידה שמבוססת על קובצי cookie שפועלת בכל האתרים האלה. CHIPS לא יפעל כי אצטרך רק להיכנס לחשבון בשני האתרים – הדרישה היא שאותו קובץ cookie יופיע בכל האתרים הקשורים.

אנחנו עובדים על ההצעה של קבוצות מאינטראקציה ישירה כדי לנסות לאפשר זאת. אחרי שערכנו ניסוי אחד במקור ודיונים רבים בקהילה, הגענו לגרסה האחרונה שמטרתה:

  • נותנים לארגונים דרך להגדיר קבוצה של אתרים שצריכים להיחשב כצד אחד.
  • אפשר להשתמש ב-Storage Access API כדי לבקש גישה לקובצי cookie באתרים שונים בתוך הקבוצה הזו של צד ראשון.
'קבוצות של קובצי cookie מהדומיין הנוכחי' מאפשרות שיתוף של מאגר קובצי cookie רק בין אתרים קשורים

קובצי ה-cookie האלה עדיין בתנור, אבל תוכלו להיכנס למדריך למפתחים בנושא דומיינים של צד ראשון כשיהיה לכם יותר דברים לבדוק, או להצטרף לדיון בנושא בהצעה WICG/first-party-sets.

אל תתנו לקובצי ה-cookie להתבזות!

המטרה שלנו היא להתחיל להוציא משימוש את התמיכה בקובצי cookie של צד שלישי ב-Chrome החל מאמצע שנת 2024. יש לכם זמן להתכונן, אבל כדאי להתחיל בתכנון כבר עכשיו.

  1. בודקים את הקוד כדי לאתר קובצי cookie באמצעות SameSite=None. אלה קובצי ה-cookie שצריך לעדכן.
  2. אם אין לכם קובצי cookie של צד שלישי, חשוב לוודא שקובצי ה-cookie באותו אתר מבוססים על המתכונים הטובים ביותר לקובצי cookie מהדומיין הנוכחי
  3. אם אתם משתמשים בקובצי ה-Cookie האלה בהקשר מוטמע ומכיל, כדאי לבדוק ולבחון את הצעה ל-CHIPS.
  4. אם אתם צריכים את קובצי ה-Cookie האלה בכמה אתרים שיוצרים קבוצה אחת, כדאי לבדוק את הצעה לקבוצות של קובצי Cookie מהדומיין הנוכחי.
  5. אם אף אחת מהאפשרויות האלה לא רלוונטית לכם, תוכלו לבדוק את הצעות הקודמות של ארגז החול לפרטיות, שבהן אנחנו מפתחים ממשקי API ייעודיים למקרים ספציפיים של שימוש, שלא מסתמכים על מעקב בכמה אתרים.

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

לכן, חשוב לזכור: קובצי cookie יכולים להיות טעימים – אבל רק כמה בכל פעם, ובטח שלא כדאי לנסות לגנוב קובצי cookie של אחרים!