היערכות להפחתת סוכן המשתמש של Chrome

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

החל מגרסה 110 של Chrome (פברואר 2023), אנחנו מוסיפים בהדרגה ערך קבוע לגרסת Android ולדגם המכשיר – ערך ברירת המחדל תמיד יהיה Android 10 בדגם K. אם אתם מסתמכים על סוכן המשתמש שיזהה את גרסת מערכת ההפעלה, דגם מכשיר ה-Android או גרסת הדפדפן המפורטת של המבקר, יכול להיות שתצטרכו לנקוט פעולה – כדאי לקרוא את הפרטים.

סוכן המשתמש הוא מחרוזת שמספקת מידע על הדפדפן של המשתמש ועל הסביבה שלו. לדוגמה, אפשר לדעת שמבקר באתר משתמש ב-Chrome בגרסה 110. הדפדפן שולח את הכתובת הזו בכותרת HTTP ומגדיר אותה כזמינה באמצעות JavaScript.

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

הפחתת סוכני משתמשים עד עכשיו

כבר התחלנו להסיר חלק מנתוני ה-User-agent שזמינים כברירת מחדל והחלפנו אותם בערכים קבועים.

החל מ-Chrome 101 החלפנו את מספר הגרסה המשנית באפסים, למשל. Chrome/101.3.2.1 הפך ל-Chrome/101.0.0.0.

החל מ-Chrome 107 החלפנו את גרסת מערכת ההפעלה למחשב ואת המידע על המעבד (CPU) בערך קבוע לפלטפורמה.

MacMacintosh; Intel Mac OS X 10_15_7
WindowsWindows NT 10.0; Win64; x64
ChromeOSX11; CrOS x86_64 14541.0.0
LinuxX11; Linux x86_64

גרסת Android ודגם המכשיר מתוקנים החל מ-Chrome 110

החל מגרסה Chrome 110, אנחנו מוסיפים בהדרגה ערך קבוע לגרסת Android ולדגם המכשיר. במקום לראות משהו כמו Android 13 ב-Pixel 7, ערך ברירת המחדל תמיד יהיה Android 10 במודל K.

לפני השינוי: סוכן המשתמש כולל את גרסת Android ואת דגם המכשיר

Mozilla/5.0 (Linux; Android 13; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.0.0 Mobile Safari/537.36

אחרי: סוכן משתמש מצומצם עם גרסת Android קבועה ודגם מכשיר

Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.0.0 Mobile Safari/537.36

ללא שינוי בפורמט של סוכן המשתמש

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

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

חלופות ל-user-agent

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

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

בקשת נתונים מפורטים באמצעות User-Agent Client Hints

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

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

כותרות הבקשות מ-Chrome לרמזים של סוכן משתמש שמוגדר כברירת מחדל:

Sec-CH-UA: "Chromium";v="110", "Not A(Brand";v="24", "Google Chrome";v="110"
Sec-CH-UA-Mobile: ?1
Sec-CH-UA-Platform: "Android"

אפשר להשתמש בכותרת Accept-CH בתשובה כדי לבקש נתונים נוספים. במקרה כזה, אפשר לבקש ש-Sec-CH-UA-Platform-Version ו-Sec-CH-UA-Model יחזרו לקבל את גרסת Android הזו וסוג המכשיר הזה בבקשות הבאות.

כותרת התגובה מהשרת, שמציינת את הגרסה והמודל של הפלטפורמה:

Accept-CH:
  Sec-CH-UA-Platform-Version,
  Sec-CH-UA-Model

בקשת כותרות מ-Chrome, כולל גרסת Android ושם הדגם:

Sec-CH-UA-Platform-Version: "13.0.0"
Sec-CH-UA-Model: "Pixel 7"

כדי לעשות את אותו הדבר ב-JavaScript, ניתן לקרוא ל-getHighEntropyValues() ב-API של userAgentData ולהעביר מערך של הערכים הרצויים: platformVersion ו-model. הפעולה הזו מחזירה הבטחה עם אובייקט שמכיל את הערכים הספציפיים.

navigator.userAgentData
 .getHighEntropyValues(
   ['platformVersion', 'model']
 ).then(ua => { console.log(ua)
 });

{
  "platformVersion": "13.0.0",
  "model": "Pixel 7"
}

בקשות ממקורות שונים או בקשות ראשוניות

אם יש בדף משאבים ממקורות שונים זקוקים לערכים האלה, אפשר להעניק גישה דרך כותרת ה-HTTP Permissions-Policy או באמצעות המטא תג Delegate-CH ב-HTML.

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

מידע נוסף

כדי לראות את מחרוזת ה-user-agent המוקטנת בפעולה, אפשר לנסות את:

  • ניתן לראות את מחרוזת סוכן המשתמש המצומצמת עבור המכשיר שלך ב-goo.gle/reduced-ua-demo
  • ראו את כל הרמזים לגבי לקוח סוכן-משתמש של שלכם ב-goo.gle/ua-ch-demo
  • כדי לשלוח את המחרוזת המצומצמת של סוכן המשתמש בדפדפן שלך, מפעילים את הדגל #reduce-user-agent של Chrome.

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

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