Chrome ยังคงลดข้อมูลที่แชร์ในสตริง User Agent เพื่อช่วยปกป้องความเป็นส่วนตัวของผู้ใช้
ตั้งแต่ Chrome 110 (กุมภาพันธ์ 2023) เป็นต้นไป เราจะเริ่มทยอยเปิดตัวค่าคงที่สำหรับเวอร์ชัน Android และรุ่นอุปกรณ์ ซึ่งค่าเริ่มต้นคือ Android 10
ของรุ่น K
เสมอ
หากคุณใช้ User Agent ในการตรวจหาเวอร์ชันระบบปฏิบัติการของผู้เข้าชม รุ่นของอุปกรณ์ Android หรือเวอร์ชันเบราว์เซอร์โดยละเอียด คุณอาจต้องดำเนินการบางอย่าง โปรดอ่านรายละเอียดต่อไปนี้
user-agent คือสตริงที่ให้ข้อมูลเกี่ยวกับเบราว์เซอร์และสภาพแวดล้อมของผู้ใช้ เช่น ทราบว่าผู้เข้าชมเว็บไซต์ใช้ Chrome เวอร์ชัน 110 ใน Android เบราว์เซอร์จะส่งข้อมูลนี้ในส่วนหัว HTTP และทำให้พร้อมใช้งานผ่าน JavaScript
ปัญหาของสตริง User Agent แบบเต็มคือระบบจะแชร์ข้อมูลโดยละเอียดเกี่ยวกับเบราว์เซอร์โดยค่าเริ่มต้นในทุกคำขอ ซึ่งเป็นปัจจัยหลักในการอนุญาตการติดตามข้ามเว็บไซต์ เป้าหมายของเราคือการลดโอกาสในการรวบรวมข้อมูลนี้แบบแฝง ในขณะเดียวกันก็ให้บริการ API เพื่อช่วยให้คุณเข้าถึงข้อมูลได้อย่างต่อเนื่องเมื่อคุณต้องการ
การลดลงของ User Agent จนถึงตอนนี้
เราได้เริ่มนำข้อมูล User Agent บางส่วนที่มีอยู่โดยค่าเริ่มต้นออกแล้วและแทนที่ด้วยค่าคงที่
จาก Chrome 101 เราได้แทนที่หมายเลขเวอร์ชันย่อยด้วยเลข 0 เช่น Chrome/101.3.2.1 เปลี่ยนเป็น Chrome/101.0.0.0
จาก Chrome 107 เราได้แทนที่เวอร์ชันระบบปฏิบัติการเดสก์ท็อปและข้อมูล CPU ด้วยค่าคงที่สำหรับแพลตฟอร์ม
Mac | ➡ | Macintosh; Intel Mac OS X 10_15_7 |
Windows | ➡ | Windows NT 10.0; Win64; x64 |
ChromeOS | ➡ | X11; CrOS x86_64 14541.0.0 |
Linux | ➡ | X11; Linux x86_64 |
แก้ไขเวอร์ชัน Android และรุ่นอุปกรณ์ตั้งแต่ Chrome 110 เป็นต้นไป
เรากำลังทยอยเปิดตัวค่าคงที่สำหรับเวอร์ชัน Android และรุ่นอุปกรณ์ใน Chrome 110
แทนที่จะเห็นบางอย่างอย่างเช่น Android 13
ใน Pixel 7
ค่าเริ่มต้นจะเป็น Android 10
ในโมเดล K
เสมอเสมอ
Mozilla/5.0 (Linux; Android 13; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.0.0 Mobile Safari/537.36
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 แต่รูปแบบจะยังคงเหมือนเดิม หากคุณใช้ User Agent เพื่ออ่านประเภทระบบปฏิบัติการหรือเวอร์ชันหลักของเบราว์เซอร์เท่านั้น ข้อมูลดังกล่าวจะยังคงได้รับการอัปเดตเหมือนเดิมและคุณไม่ต้องดำเนินการใดๆ

ตัวเลือกอื่นๆ สำหรับ User-agent
หากคุณใช้ข้อมูลที่มีรายละเอียดมากกว่า ก็ควรตรวจสอบว่าคุณใช้การเพิ่มประสิทธิภาพแบบต่อเนื่องหรือการตรวจหาฟีเจอร์แทนได้หรือไม่
โปรดอย่าลืมว่า User-agent นั้นเหมือนกับค่าอื่นๆ ที่ผู้ใช้ระบุ คุณควรตรวจสอบว่าค่าดังกล่าวถูกต้องหรือไม่ ผู้ใช้ ส่วนขยาย หรือไคลเอ็นต์อื่นๆ สามารถเปลี่ยนแปลงค่า User Agent ได้อย่างง่ายดาย หรืออาจไม่ส่งเลยก็ได้ ในกรณีส่วนใหญ่ คุณควรจะสามารถแสดงเนื้อหาที่ทำงานให้แก่ผู้เข้าชมโดยไม่ต้องมีข้อมูล User Agent
ขอข้อมูลโดยละเอียดด้วยคำแนะนำของไคลเอ็นต์ User Agent
การเข้าถึงข้อมูล User Agent โดยละเอียดมีเหตุผลหลายประการ เช่น การให้เนื้อหาเฉพาะอุปกรณ์ ฟังก์ชันป้องกันการฉ้อโกง หรือการบันทึกแบบละเอียด หากต้องการข้อมูลที่ละเอียดยิ่งขึ้น ให้ใช้ User-Agent Client Hints (UA-CH) API เพื่อเข้าถึงข้อมูลดังกล่าว UA-CH จะพร้อมใช้งานผ่านส่วนหัว HTTP หรือ JavaScript เช่นเดียวกับ User Agent
คุณอาจเคยเห็นการส่งส่วนหัวเริ่มต้นพร้อมคำนำหน้า Sec-CH-UA-
ที่บอกเบราว์เซอร์ เวอร์ชันหลัก ระบบปฏิบัติการ และเบราว์เซอร์เป็นอุปกรณ์เคลื่อนที่ไปแล้ว
⏫ ส่วนหัวคําขอคำแนะนำไคลเอ็นต์ User Agent เริ่มต้นจาก 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()
ใน userAgentData
API โดยส่งผ่านอาร์เรย์ของค่าที่คุณต้องการ ได้แก่ 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 ที่ลดลง ให้ตรวจสอบสิ่งต่อไปนี้
- ดูสตริง User Agent ที่ลดลงสำหรับอุปกรณ์ของคุณใน goo.gle/reduced-ua-demo
- ดูคำแนะนำไคลเอ็นต์ User-Agent สำหรับส่วนหัว JavaScript และ HTTP สำหรับอุปกรณ์ของคุณทั้งหมดใน goo.gle/ua-ch-demo
- ส่งสตริง User Agent ที่ลดลงในเบราว์เซอร์ของคุณโดยเปิดใช้แฟล็ก Chrome ของ
#reduce-user-agent
นอกจากนี้ คุณยังสามารถลงทะเบียนทดลองใช้ส่วนลดจากต้นทางสำหรับ User Agent เพื่อรับ User Agent ที่ลดลงบนเว็บไซต์ได้ แม้ว่าเราจะสิ้นสุดการทดลองใช้นี้ในช่วงต้นเดือนมีนาคม เนื่องจากเรากำลังทยอยส่ง User Agent ที่ลดลงโดยค่าเริ่มต้น
เรามีแหล่งข้อมูลเพิ่มเติมในหน้า Landing Page ที่ลดลงของ User Agent และคุณยังแจ้งปัญหาได้ในที่เก็บ GitHub สำหรับ User Agent โดยเฉพาะได้อีกด้วย