גרסת המקור לניסיון של הפחתת סוכן המשתמש

המטרה של הפחתת סוכן המשתמש היא לצמצם את הפלטפורמות הפסיבית ליצירה של טביעת אצבע דיגיטלית (fingerprinting) על ידי צמצום המידע במחרוזת User-Agent (UA) רק למותג של הדפדפן ולגרסה המשמעותית שלו, להבחנה שלו במחשבים ובניידים, ולפלטפורמה שבה הוא פועל. בשלב הזה, מחרוזת UA משותפת בכל בקשת HTTP ונחשפה ב-JavaScript לכל המשאבים שהדפדפן טוען. הוא מכיל מידע משמעותי על הדפדפן, על הפלטפורמה שבה הוא פועל והיכולות שלו. User-Agent Client Hints (UA-CH) יכול לספק את אותו מידע כמו מחרוזת UA מלאה, אבל אתרים יכולים לבקש רק את פרטי ה-UA שהם צריכים.

החל מגרסת הבטא של Chrome 95, נתחיל את גרסת המקור לניסיון בנושא צמצום של סוכן המשתמש כדי לאפשר לאתרים לקבל עכשיו את מחרוזת UA המצומצמת. כך האתרים יוכלו לגלות ולתקן בעיות לפני שההפחתה ב-UA תהפוך להתנהגות ברירת המחדל ב-Chrome (ההפחתה מתוכננת להתחיל ברבעון השני של 2022). אם אתם רוצים לבדוק את גרסת המקור לניסיון של 95 משתמשי בטא לפני ההשקה שלה לקהל היציב, עליכם להצטרף ולבדוק את הגרסה לפני תאריך ההשקה של גרסה 95 של Chrome (שמתוכננת בשלב זה ל-19 באוקטובר 2021).

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

מהו User-Agent?

המחרוזת של User-Agent (UA) משותפת בכל בקשת HTTP ונחשפה ב-JavaScript לכל המשאבים שנטענים על ידי הדפדפן. נכון לעכשיו הוא מכיל מידע משמעותי על הדפדפן ובפלטפורמה שבה הוא פועל.

למה מפחיתים את סוכן המשתמש?

המטרה של הפחתת מידע בסוכן משתמש היא לצמצם את הפלטפורמות הפסיביות של יצירה של טביעת אצבע דיגיטלית (fingerprinting) בדפדפן Chrome. כאשר מצמצמים את המידע במחרוזת UA רק למותג ולגרסה המשמעותית של הדפדפן, להבחנה בין מחשב שולחני או לנייד ולפלטפורמה שבה היא פועלת, קשה יותר לזהות משתמשים ספציפיים.

מה המשמעות מבחינת מפתחי אתרים?

אתרים צריכים להתכונן לקבלת מחרוזות UA מצומצמות ולשקול להשתתף בגרסת המקור לניסיון (מפורט בהמשך). הערכים המצומצמים של סוכן המשתמש יופיעו במיקומים הבאים:

  • כותרת בקשת ה-HTTP User-Agent
  • מקבל JavaScript של navigator.userAgent
  • מקבל JavaScript של navigator.platform
  • מקבל JavaScript של navigator.appVersion

כדי לקבל יותר מידע על הלקוח ממה שמשותף על ידי סוכן המשתמש המצומצם, אתרים יצטרכו לעבור ל-Client-Hints API החדש של סוכן המשתמש. מידע נוסף על אסטרטגיות העברה זמין במאמר העברה לרמזים על הלקוח של סוכן המשתמש.

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

איך פועלת גרסת המקור לניסיון?

גרסת המקור לניסיון שונה מעט מגרסת המקור לניסיון הרגיל. ניסויי מקור רגילים יכולים לשלוט רק בהתנהגות בתגובה (לדוגמה, לשלוט בגישה ל-API ב-JavaScript של התגובה). במהלך תקופת הניסיון הזו, המטרה שלנו היא לא רק לשנות את מחרוזת ה-UA שכלולה בממשקי ה-API של JavaScript, אלא גם לשנות את הכותרת של סוכן המשתמש שנשלחת בבקשת ה-HTTP.

כדי לעשות זאת, אנחנו מגדירים רמז זמני ללקוח בשם Sec-CH-UA-Reduced, שנוכחותו בבקשה מציינת שערך הכותרת של סוכן המשתמש מכיל את מחרוזת ה-UA המצומצמת. רמז הלקוח Sec-CH-UA-Reduced יישלח (יחד עם מחרוזת UA המצומצמת) רק אם האסימון של גרסת המקור לניסיון תקף, והרמז הלקוח Sec-CH-UA-Reduced לא יפעל בתום תקופת הניסיון. חשוב לזכור שבקשת הניווט הראשונה עדיין תקבל את המחרוזת של סוכן המשתמש שלא הופחתה, אלא אם תגדירו את ה-Critical-CH header.

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

איך משתתפים בגרסת המקור לניסיון של הפחתת סוכן משתמש?

  1. כדי להירשם לגרסת המקור לניסיון ולקבל אסימון לדומיינים שלכם, היכנסו לדף 'תקופת ניסיון לצמצום של סוכן המשתמש'.

  2. מעדכנים את הכותרות של תגובת ה-HTTP:

    1. מוסיפים את Origin-Trial: <ORIGIN TRIAL TOKEN> לכותרת התגובה של ה-HTTP, שבה <ORIGIN TRIAL TOKEN> מכיל את האסימון שקיבלתם במהלך ההרשמה לגרסת המקור לניסיון.
    2. מוסיפים את Accept-CH: Sec-CH-UA-Reduced לכותרת התגובה של ה-HTTP.
    3. אם מגדירים את הערך Accept-CH, המחרוזת המצומצמת של סוכן המשתמש תישלח רק בבקשות הבאות למקור. כדי לשלוח מחדש את בקשת הניווט הראשונה עם מחרוזת ה-User-Agent המצומצמת, צריך להוסיף את הערך Critical-CH: Sec-CH-UA-Reduced לכותרת התגובה של ה-HTTP, בנוסף לכותרות Accept-CH ו-Origin-Trial.
    4. הערה: אם כותרות התגובות מכילות אסימון Origin-Trial ו-Accept-CH: Sec-CH-UA-Reduced חוקיים, כל הבקשות למשאבי משנה (למשל, תמונות או גיליונות סגנונות) וניווטי המשנה (למשל, iframes) ישלחו את מחרוזת UA מופחתת, גם אם המקורות של הבקשות האלה לא רשומים בגרסת המקור לניסיון.
  3. טוענים את האתר ב-Chrome M95 (ואילך) ומתחילים לקבל את מחרוזת UA המופחתת.

  4. שלחו בעיות או משוב למאגר GitHub ההפחתה ב-UA.

  5. בכתובת https://uar-ot.glitch.me/ אפשר לראות הדגמה פשוטה של גרסת המקור לניסיון (יחד עם קוד המקור).

איך משתתפים בגרסת המקור לניסיון כהטמעה של צד שלישי?

החל מגרסה 96 של Chrome, הטמעות של צדדים שלישיים (לדוגמה, iframe בתוך אתר אחר) יכולות להשתתף בגרסת המקור לניסיון, בלי שיהיה צורך לרשום את האתר ברמה העליונה.

כדי להירשם כהטמעה של צד שלישי:

  1. נכנסים לדף Trial for User Agent Reduction ולוחצים על Register.
  2. כשיוצרים את האסימון, חשוב לסמן את תיבת הסימון Third-party matching.
  3. כדי לקבל את הכותרת המצומצמת של סוכן המשתמש מההטמעה של צד שלישי, צריך לעדכן את הכותרות של תגובת ה-HTTP.
  4. כדי לקבל את המחרוזת המצומצמת של סוכן המשתמש בממשקי JavaScript API, צריך להחדר את האסימון של תקופת הניסיון באמצעות JavaScript.

כמה נקודות חשובות על הפעלת גרסת המקור לניסיון בהטמעות של צד שלישי: + אי אפשר לציין Critical-CH להטמעות של צדדים שלישיים, לכן מחרוזת UA המצומצמת לא תישלח בניווט הראשון, אבל בקשות למשאבי משנה של הטמעה של צד שלישי ישלחו את מחרוזת UA המצומצמת. + אם גרסת המקור לניסיון אומתה על בסיס המקור של הטמעה של צד שלישי, בקשות עתידיות לאותו מקור בניווט ברמה העליונה ישלחו את מחרוזת UA המצומצמת. לכן מומלץ להגביר את ההשתתפות בגרסת המקור לניסיון, גם ברמה העליונה וגם לבקשות להטמעה יחד. + אם סוכן המשתמש השבית קובצי cookie של צד שלישי, גרסת המקור לניסיון לא תפעל עם הכותרת User-Agent בבקשות הטמעה של צד שלישי, אבל ממשקי ה-API של JavaScript עדיין יקבלו את מחרוזת UA המצומצמת.

איך אפשר לוודא שגרסת המקור לניסיון פועלת?

כדי לוודא שגרסת המקור לניסיון פועלת, בודקים את כותרות הבקשות ומוודאים את הדברים הבאים:

  1. הכותרת של סוכן המשתמש מכילה את הגרסה המוקטנת. כאן אפשר למצוא דוגמאות למחרוזות UA מצומצמות. דרך קלה לדעת היא שמחרוזת הגרסה המשנית של Chrome מכילה 0.0.0.
  2. הכותרת Sec-CH-UA-Reduced מוגדרת ל-?1.

הכותרות של התגובה הראשונית שמכילות את האסימון של גרסת המקור לניסיון צריכות להיראות כך:

הכותרות של התגובה הראשונית שמכילות את אסימון תקופת המקור.

כותרות הבקשות הבאות שמכילות את מחרוזת UA המצומצמת צריכות להיראות כך:

כותרות הבקשות הבאות שמכילות את מחרוזת ה-UA המצומצמת.

איך מפסיקים את ההשתתפות בגרסת המקור לניסיון של הפחתת סוכן המשתמש?

בכל שלב בתקופת הניסיון תוכלו להפסיק את ההשתתפות ולקבל את המחרוזת המלאה של סוכן המשתמש. כדי להפסיק להשתתף בתוכנית:

  1. שולחים כותרת Accept-CH בתגובת HTTP שלא כוללת את Sec-CH-UA-Reduced. הערה: Accept-CH עם ערך ריק הוא דרך חוקית לעשות זאת אם האתר לא מבקש רמזים אחרים ללקוח.
  2. מסירים את הכותרת Origin-Trial של תקופת הניסיון לצמצום בסוכן המשתמש מתגובת ה-HTTP.
  3. אם היא מוגדרת, מסירים את Sec-CH-UA-Reduced מהכותרת Critical-CH בתגובת ה-HTTP.

כמה זמן תימשך תקופת הניסיון המקורית?

גרסת המקור לניסיון של הפחתה ב-UA תפעל במשך שישה חודשים לפחות, בדומה לכשש אבני דרך ב-Chrome. גרסת המקור לניסיון תופיע בגרסה M95 ותסתיים עד M101. בשלב הזה, מערכת Chrome תבדוק את המשוב מגרסת המקור לניסיון לפני המשך השליחה של המחרוזת המצומצמת של User-Agent באופן הדרגתי בהתאם לתוכנית ההשקה. אם אתר זקוק לפרק זמן ארוך יותר, הוא יכול להצטרף לגרסת ניסיון מקור נוספת להוצאה משימוש, וכך תהיה לו גישה למחרוזת UA המלאה למשך שישה חודשים נוספים לפחות. נפרסם פרטים נוספים על תקופת הניסיון להוצאה משימוש כשהיא תהיה מוכנה.

איך אפשר לשתף משוב על גרסת המקור לניסיון של הפחתת סוכן המשתמש?

שלחו בעיות או משוב למאגר GitHub ההפחתה ב-UA.