Chrome به کاهش اطلاعات به اشتراک گذاشته شده در رشته عامل کاربر خود ادامه می دهد تا از حریم خصوصی کاربر محافظت کند.
از Chrome 110 (فوریه 2023) به تدریج یک مقدار ثابت را برای نسخه اندروید و مدل دستگاه معرفی می کنیم — مقدار پیش فرض همیشه Android 10
در مدل K
خواهد بود. اگر برای شناسایی نسخه سیستم عامل بازدیدکننده، مدل دستگاه Android، یا نسخه مرورگر دقیق به عامل کاربر متکی هستید، ممکن است لازم باشد اقدام کنید—برای جزئیات بیشتر بخوانید.
user-agent رشتهای است که اطلاعاتی در مورد مرورگر کاربر و محیط او ارائه میکند - مانند دانستن اینکه بازدیدکنندهای در سایت شما Chrome نسخه 110 را در Android اجرا میکند. مرورگر شما این را در یک هدر HTTP می فرستد و از طریق جاوا اسکریپت در دسترس قرار می دهد.
مشکل رشته کاربر-عامل کامل این است که اطلاعات دقیق مرورگر را به طور پیشفرض در هر درخواست به اشتراک میگذارد که عامل اصلی اجازه ردیابی بین سایتی است. هدف ما کاهش فرصتهای جمعآوری غیرفعال این دادهها در حین ارائه API است تا به شما امکان دسترسی فعال به دادهها در مواقع نیاز را بدهد.
کاهش عامل کاربر تا کنون
ما قبلاً شروع به حذف برخی از دادههای عامل کاربر که بهطور پیشفرض در دسترس هستند و جایگزین کردن آن با مقادیر ثابت کردهایم.
از Chrome 101، شماره نسخه کوچک را با صفر جایگزین کردیم، به عنوان مثال Chrome/101 .3.2.1 تبدیل به Chrome/101 .0.0.0 شد.
از Chrome 107، نسخه سیستم عامل دسکتاپ و اطلاعات CPU را با یک مقدار ثابت برای پلتفرم جایگزین کردیم.
مک | ➡ | مکینتاش؛ اینتل Mac OS X 10_15_7 |
ویندوز | ➡ | ویندوز NT 10.0؛ Win64; x64 |
ChromeOS | ➡ | X11; CrOS x86_64 14541.0.0 |
لینوکس | ➡ | X11; لینوکس x86_64 |
نسخه اندروید و مدل دستگاه ثابت از Chrome 110 شروع شد
با شروع Chrome 110 ، ما به تدریج یک مقدار ثابت را برای نسخه اندروید و مدل دستگاه معرفی می کنیم. به جای دیدن چیزی شبیه Android 13
در Pixel 7
مقدار پیش فرض همیشه Android 10
در مدل K
خواهد بود.
Mozilla/5.0 (Linux; Android 13 ; Pixel 7 ) AppleWebKit/537.36 (KHTML، مانند Gecko) Chrome/95.0.0.0 Mobile Safari/537.36
Mozilla/5.0 (Linux; Android 10 ; K ) AppleWebKit/537.36 (KHTML، مانند Gecko) Chrome/95.0.0.0 Mobile Safari/537.36
بدون تغییر در قالب کاربر-عامل
کاهش user-agent مقادیر بازگشتی در user-agent را تغییر میدهد، اما قالب ثابت میماند. اگر از user-agent فقط برای خواندن نوع سیستم عامل یا نسخه مرورگر اصلی استفاده می کنید، آن داده ها مانند قبل به روز می شوند و نیازی به انجام هیچ اقدامی نیست .

جایگزین های کاربر-عامل
اگر در حال حاضر از دادههای دقیقتر استفاده میکنید، همیشه خوب است بررسی کنید که آیا میتوانید بهجای آن از بهبود پیشرونده یا تشخیص ویژگی استفاده کنید .
همیشه به یاد داشته باشید که user-agent دقیقاً مانند هر مقدار دیگری است که توسط کاربر ارائه شده است - باید آن را تأیید کنید و فرض نکنید که دقیق است. مقدار user-agent را میتوان به راحتی توسط کاربر، برنامههای افزودنی، سایر کلاینتها تغییر داد یا ممکن است اصلاً ارسال نشود. در بیشتر موارد، شما باید بتوانید محتوای کاری را بدون داده های عامل کاربر به بازدیدکنندگان ارائه دهید .
اطلاعات دقیق را با راهنمای کاربر-عامل مشتری درخواست کنید
دلایل معتبر زیادی برای دسترسی به اطلاعات دقیق عامل کاربر وجود دارد، مانند ارائه محتوای خاص دستگاه، عملکرد ضد کلاهبرداری، یا گزارش دقیق. اگر به اطلاعات دقیق تری نیاز دارید، می توانید از API User-Agent Client Hints (UA-CH) برای دسترسی به آن استفاده کنید. مانند user-agent، UA-CH از طریق هدرهای HTTP یا جاوا اسکریپت در دسترس است.
ممکن است قبلاً هدرهای پیشفرض را دیده باشید که با پیشوند Sec-CH-UA-
ارسال میشوند که به شما میگوید مرورگر، نسخه اصلی آن، سیستم عامل و اینکه آیا مرورگر یک دستگاه تلفن همراه است یا خیر.
⏫ سرصفحههای درخواست پیشفرض User-Agent Client Hints از 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
را بخواهید تا نسخه اندروید و نوع دستگاه را در درخواستهای بعدی برگردانید.
⏬ هدر پاسخ از سرور شما که نسخه و مدل پلتفرم را مشخص می کند:
Accept-CH:
Sec-CH-UA-Platform-Version,
Sec-CH-UA-Model
⏫ درخواست برگشت سرصفحه ها از کروم شامل نسخه اندروید و نام مدل:
Sec-CH-UA-Platform-Version: "13.0.0"
Sec-CH-UA-Model: "Pixel 7"
شما می توانید همین کار را در جاوا اسکریپت با فراخوانی getHighEntropyValues()
در userAgentData
API انجام دهید و آرایه ای از مقادیر مورد نظر خود را ارسال کنید: platformVersion
و model
. این یک وعده را با یک شی حاوی مقادیر خاص برمی گرداند.
navigator.userAgentData
.getHighEntropyValues(
['platformVersion', 'model']
).then(ua => { console.log(ua)
});
{
"platformVersion": "13.0.0",
"model": "Pixel 7"
}
درخواست های متقابل یا اولیه
اگر منابع متقاطع در صفحه خود دارید که به این مقادیر نیاز دارند، میتوانید از طریق سرصفحه Permissions-Policy
HTTP یا با استفاده از متا تگ Delegate-CH
در HTML خود اجازه دسترسی دهید.
اگر لازم است سایت شما این مقادیر حساس را در اولین درخواست سطح بالا داشته باشد، میتوانید از هدر HTTP Critical-CH
استفاده کنید که به مرورگر میگوید درخواست اولیه خود را با اضافه شدن نکات اضافی دوباره امتحان کند. این ممکن است برای سیستمهای قدیمی که بهروزرسانی آنها سخت است مفید باشد، اما در حالت ایدهآل، نباید به این مقادیر حساس برای ارائه HTML اولیه خود تکیه کنید.
بیشتر بدانید
برای مشاهده عملکرد رشته کاربر-عامل کاهش یافته، موارد زیر را بررسی کنید:
- رشته کاهش یافته عامل کاربر را برای دستگاه خود در goo.gle/reduced-ua-demo ببینید
- همه نکات جاوا اسکریپت و هدر HTTP User-Agent Client را برای دستگاه خود در goo.gle/ua-ch-demo ببینید
- با فعال کردن
#reduce-user-agent
flag Chrome ، رشته کاهشیافته user-agent را در مرورگر خود ارسال کنید.
همچنان میتوانید برای نسخه آزمایشی مبدأ کاهش عامل کاربر ثبتنام کنید تا عامل کاربر کاهشیافته را در سایت خود دریافت کنید، اگرچه ما این دوره آزمایشی را در اوایل ماه مارس به پایان میرسانیم زیرا به طور پیشفرض به ارسال عامل کاهشیافته کاربر ادامه میدهیم.
ما منابع بیشتری در صفحه فرود کاهش عامل کاربر داریم و همچنین می توانید در مورد مخزن اختصاصی GitHub کاهش عامل کاربر، مشکلاتی را مطرح کنید.
،Chrome به کاهش اطلاعات به اشتراک گذاشته شده در رشته عامل کاربر خود ادامه می دهد تا از حریم خصوصی کاربر محافظت کند.
از Chrome 110 (فوریه 2023) به تدریج یک مقدار ثابت را برای نسخه اندروید و مدل دستگاه معرفی می کنیم — مقدار پیش فرض همیشه Android 10
در مدل K
خواهد بود. اگر برای شناسایی نسخه سیستم عامل بازدیدکننده، مدل دستگاه Android، یا نسخه مرورگر دقیق به عامل کاربر متکی هستید، ممکن است لازم باشد اقدام کنید—برای جزئیات بیشتر بخوانید.
user-agent رشتهای است که اطلاعاتی در مورد مرورگر کاربر و محیط او ارائه میکند - مانند دانستن اینکه بازدیدکنندهای در سایت شما Chrome نسخه 110 را در Android اجرا میکند. مرورگر شما این را در یک هدر HTTP می فرستد و از طریق جاوا اسکریپت در دسترس قرار می دهد.
مشکل رشته کاربر-عامل کامل این است که اطلاعات دقیق مرورگر را به طور پیشفرض در هر درخواست به اشتراک میگذارد که عامل اصلی اجازه ردیابی بین سایتی است. هدف ما کاهش فرصتهای جمعآوری غیرفعال این دادهها در حین ارائه API است تا به شما امکان دسترسی فعال به دادهها در مواقع نیاز را بدهد.
کاهش عامل کاربر تا کنون
ما قبلاً شروع به حذف برخی از دادههای عامل کاربر که بهطور پیشفرض در دسترس هستند و جایگزین کردن آن با مقادیر ثابت کردهایم.
از Chrome 101، شماره نسخه کوچک را با صفر جایگزین کردیم، به عنوان مثال Chrome/101 .3.2.1 تبدیل به Chrome/101 .0.0.0 شد.
از Chrome 107، نسخه سیستم عامل دسکتاپ و اطلاعات CPU را با یک مقدار ثابت برای پلتفرم جایگزین کردیم.
مک | ➡ | مکینتاش؛ اینتل Mac OS X 10_15_7 |
ویندوز | ➡ | ویندوز NT 10.0؛ Win64; x64 |
ChromeOS | ➡ | X11; CrOS x86_64 14541.0.0 |
لینوکس | ➡ | X11; لینوکس x86_64 |
نسخه اندروید و مدل دستگاه ثابت از Chrome 110 شروع شد
با شروع Chrome 110 ، ما به تدریج یک مقدار ثابت را برای نسخه اندروید و مدل دستگاه معرفی می کنیم. به جای دیدن چیزی شبیه Android 13
در Pixel 7
مقدار پیش فرض همیشه Android 10
در مدل K
خواهد بود.
Mozilla/5.0 (Linux; Android 13 ; Pixel 7 ) AppleWebKit/537.36 (KHTML، مانند Gecko) Chrome/95.0.0.0 Mobile Safari/537.36
Mozilla/5.0 (Linux; Android 10 ; K ) AppleWebKit/537.36 (KHTML، مانند Gecko) Chrome/95.0.0.0 Mobile Safari/537.36
بدون تغییر در قالب کاربر-عامل
کاهش user-agent مقادیر بازگشتی در user-agent را تغییر میدهد، اما قالب ثابت میماند. اگر از user-agent فقط برای خواندن نوع سیستم عامل یا نسخه مرورگر اصلی استفاده می کنید، آن داده ها مانند قبل به روز می شوند و نیازی به انجام هیچ اقدامی نیست .

جایگزین های کاربر-عامل
اگر در حال حاضر از دادههای دقیقتر استفاده میکنید، همیشه خوب است بررسی کنید که آیا میتوانید بهجای آن از بهبود پیشرونده یا تشخیص ویژگی استفاده کنید .
همیشه به یاد داشته باشید که user-agent دقیقاً مانند هر مقدار دیگری است که توسط کاربر ارائه شده است - باید آن را تأیید کنید و فرض نکنید که دقیق است. مقدار user-agent را میتوان به راحتی توسط کاربر، برنامههای افزودنی، سایر کلاینتها تغییر داد یا ممکن است اصلاً ارسال نشود. در بیشتر موارد، شما باید بتوانید محتوای کاری را بدون داده های عامل کاربر به بازدیدکنندگان ارائه دهید .
اطلاعات دقیق را با راهنمای کاربر-عامل مشتری درخواست کنید
دلایل معتبر زیادی برای دسترسی به اطلاعات دقیق عامل کاربر وجود دارد، مانند ارائه محتوای خاص دستگاه، عملکرد ضد کلاهبرداری، یا گزارش دقیق. اگر به اطلاعات دقیق تری نیاز دارید، می توانید از API User-Agent Client Hints (UA-CH) برای دسترسی به آن استفاده کنید. مانند user-agent، UA-CH از طریق هدرهای HTTP یا جاوا اسکریپت در دسترس است.
ممکن است قبلاً هدرهای پیشفرض را دیده باشید که با پیشوند Sec-CH-UA-
ارسال میشوند که به شما میگوید مرورگر، نسخه اصلی آن، سیستم عامل و اینکه آیا مرورگر یک دستگاه تلفن همراه است یا خیر.
⏫ سرصفحههای درخواست پیشفرض User-Agent Client Hints از 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
را بخواهید تا نسخه اندروید و نوع دستگاه را در درخواستهای بعدی برگردانید.
⏬ هدر پاسخ از سرور شما که نسخه و مدل پلتفرم را مشخص می کند:
Accept-CH:
Sec-CH-UA-Platform-Version,
Sec-CH-UA-Model
⏫ درخواست برگشت سرصفحه ها از کروم شامل نسخه اندروید و نام مدل:
Sec-CH-UA-Platform-Version: "13.0.0"
Sec-CH-UA-Model: "Pixel 7"
شما می توانید همین کار را در جاوا اسکریپت با فراخوانی getHighEntropyValues()
در userAgentData
API انجام دهید و آرایه ای از مقادیر مورد نظر خود را ارسال کنید: platformVersion
و model
. این یک وعده را با یک شی حاوی مقادیر خاص برمی گرداند.
navigator.userAgentData
.getHighEntropyValues(
['platformVersion', 'model']
).then(ua => { console.log(ua)
});
{
"platformVersion": "13.0.0",
"model": "Pixel 7"
}
درخواست های متقابل یا اولیه
اگر منابع متقاطع در صفحه خود دارید که به این مقادیر نیاز دارند، میتوانید از طریق سرصفحه Permissions-Policy
HTTP یا با استفاده از متا تگ Delegate-CH
در HTML خود اجازه دسترسی دهید.
اگر لازم است سایت شما این مقادیر حساس را در اولین درخواست سطح بالا داشته باشد، میتوانید از هدر HTTP Critical-CH
استفاده کنید که به مرورگر میگوید درخواست اولیه خود را با اضافه شدن نکات اضافی دوباره امتحان کند. این ممکن است برای سیستمهای قدیمی که بهروزرسانی آنها سخت است مفید باشد، اما در حالت ایدهآل، نباید به این مقادیر حساس برای ارائه HTML اولیه خود تکیه کنید.
بیشتر بدانید
برای مشاهده عملکرد رشته کاربر-عامل کاهش یافته، موارد زیر را بررسی کنید:
- رشته کاهش یافته عامل کاربر را برای دستگاه خود در goo.gle/reduced-ua-demo ببینید
- همه نکات جاوا اسکریپت و هدر HTTP User-Agent Client را برای دستگاه خود در goo.gle/ua-ch-demo ببینید
- با فعال کردن
#reduce-user-agent
flag Chrome ، رشته کاهشیافته user-agent را در مرورگر خود ارسال کنید.
همچنان میتوانید برای نسخه آزمایشی مبدأ کاهش عامل کاربر ثبتنام کنید تا عامل کاربر کاهشیافته را در سایت خود دریافت کنید، اگرچه ما این دوره آزمایشی را در اوایل ماه مارس به پایان میرسانیم زیرا به طور پیشفرض به ارسال عامل کاهشیافته کاربر ادامه میدهیم.
ما منابع بیشتری در صفحه فرود کاهش عامل کاربر داریم و همچنین می توانید در مورد مخزن اختصاصی GitHub کاهش عامل کاربر، مشکلاتی را مطرح کنید.