Chuẩn bị để giảm thiểu tác nhân người dùng của Chrome

Chrome đang tiếp tục giảm thiểu thông tin được chia sẻ trong chuỗi tác nhân người dùng để giúp bảo vệ quyền riêng tư của người dùng.

Kể từ Chrome 110 (tháng 2 năm 2023), chúng tôi sẽ từng bước ra mắt giá trị cố định cho phiên bản Android và kiểu thiết bị – giá trị mặc định sẽ luôn là Android 10 trên mẫu K. Nếu dựa vào tác nhân người dùng để phát hiện phiên bản hệ điều hành, kiểu thiết bị Android hoặc phiên bản trình duyệt chi tiết của khách truy cập, bạn có thể cần thực hiện hành động. Đọc tiếp để biết chi tiết.

Tác nhân người dùng là một chuỗi cung cấp thông tin về trình duyệt của người dùng và môi trường của họ, chẳng hạn như biết rằng khách truy cập trên trang web của bạn đang chạy Chrome phiên bản 110 trên Android. Trình duyệt của bạn gửi nội dung này trong tiêu đề HTTP và cung cấp tiêu đề này qua JavaScript.

Vấn đề với chuỗi tác nhân người dùng đầy đủ là chuỗi này chia sẻ thông tin chi tiết về trình duyệt theo mặc định trên mọi yêu cầu. Đây là một yếu tố chính trong việc cho phép theo dõi trên nhiều trang web. Mục tiêu của chúng tôi là giảm cơ hội thu thập thụ động dữ liệu này trong khi cung cấp các API để bạn có thể chủ động truy cập dữ liệu khi cần.

Mức giảm cho đến nay về tác nhân người dùng

Chúng tôi đã bắt đầu xoá một số dữ liệu tác nhân người dùng có sẵn theo mặc định và thay thế bằng các giá trị cố định.

Từ Chrome 101, chúng tôi đã thay thế số phiên bản phụ bằng số 0, ví dụ: Chrome/101.3.2.1 đã trở thành Chrome/101.0.0.0.

Từ Chrome 107, chúng tôi đã thay thế phiên bản hệ điều hành dành cho máy tính và thông tin CPU bằng một giá trị cố định cho nền tảng này.

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

Khắc phục phiên bản Android và mẫu thiết bị kể từ Chrome 110

Kể từ Chrome 110, chúng tôi sẽ dần ra mắt giá trị cố định cho phiên bản Android và mẫu thiết bị. Thay vì nhìn thấy những giá trị như Android 13 trên Pixel 7, giá trị mặc định sẽ luôn là Android 10 trên mô hình K.

Trước: tác nhân người dùng bao gồm phiên bản Android và kiểu thiết bị

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

Sau: giảm tác nhân người dùng nhờ phiên bản Android và mẫu thiết bị được khắc phục

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

Không thay đổi định dạng tác nhân người dùng

Việc rút gọn tác nhân người dùng sẽ thay đổi các giá trị được trả về trong tác nhân người dùng, nhưng định dạng vẫn giữ nguyên. Nếu bạn chỉ sử dụng tác nhân người dùng để đọc loại hệ điều hành hoặc phiên bản chính của trình duyệt, thì dữ liệu đó sẽ tiếp tục cập nhật như trước đây và bạn không cần phải làm gì cả.

Nền tảng, tên trình duyệt, phiên bản chính của trình duyệt và các phần chỉ báo cho thiết bị di động trong chuỗi tác nhân người dùng vẫn tiếp tục cập nhật như trước đây.
Loại hệ điều hành, mẫu thiết bị và phiên bản nhỏ của trình duyệt là các giá trị tĩnh.
Tất cả các phần khác của chuỗi tác nhân người dùng sẽ giữ nguyên.

Lựa chọn thay thế cho tác nhân người dùng

Nếu đang sử dụng dữ liệu chi tiết hơn, bạn nên kiểm tra xem mình có thể sử dụng tính năng nâng cao tăng dần hoặc phát hiện tính năng hay không.

Luôn nhớ rằng tác nhân người dùng cũng giống như mọi giá trị do người dùng cung cấp khác – bạn nên xác thực và không cho rằng giá trị đó là chính xác. Người dùng, tiện ích, các ứng dụng khách khác có thể dễ dàng thay đổi giá trị tác nhân người dùng hoặc có thể không cần gửi. Trong hầu hết các trường hợp, bạn sẽ có thể phân phối nội dung hữu ích cho khách truy cập mà không cần dữ liệu về tác nhân người dùng.

Yêu cầu dữ liệu chi tiết bằng Gợi ý ứng dụng tác nhân người dùng

Có nhiều lý do hợp lệ để truy cập vào dữ liệu chi tiết về tác nhân người dùng, chẳng hạn như cung cấp nội dung dành riêng cho thiết bị, chức năng chống lừa đảo hoặc ghi nhật ký chi tiết. Nếu cần dữ liệu chi tiết hơn, bạn có thể sử dụng API Gợi ý ứng dụng tác nhân người dùng (UA-CH) để truy cập dữ liệu đó. Giống như tác nhân người dùng, UA-CH hoạt động qua tiêu đề HTTP hoặc JavaScript.

Có thể bạn đã thấy tiêu đề mặc định được gửi cùng với tiền tố Sec-CH-UA- cho bạn biết trình duyệt, phiên bản chính của trình duyệt, hệ điều hành và liệu trình duyệt có phải là thiết bị di động hay không.

Tiêu đề mặc định của yêu cầu chứa Gợi ý ứng dụng tác nhân người dùng từ 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"

Bạn có thể sử dụng tiêu đề Accept-CH trong câu trả lời để yêu cầu cung cấp thêm dữ liệu. Trong trường hợp này, bạn có thể yêu cầu Sec-CH-UA-Platform-VersionSec-CH-UA-Model để lấy lại phiên bản Android và loại thiết bị đó trong các yêu cầu tiếp theo.

Tiêu đề phản hồi từ máy chủ của bạn chỉ định phiên bản và kiểu nền tảng:

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

Yêu cầu trả lại tiêu đề từ Chrome, bao gồm cả phiên bản Android và tên kiểu máy:

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

Bạn có thể làm tương tự trong JavaScript bằng cách gọi getHighEntropyValues() trên API userAgentData, truyền một mảng các giá trị bạn muốn: platformVersionmodel. Hàm này trả về một hàm xác thực có đối tượng chứa các giá trị cụ thể.

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

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

Yêu cầu trên nhiều nguồn gốc hoặc yêu cầu ban đầu

Nếu có tài nguyên nhiều nguồn gốc trên trang cần những giá trị này, bạn có thể cho phép truy cập thông qua tiêu đề HTTP Permissions-Policy hoặc sử dụng thẻ meta Delegate-CH trong HTML.

Nếu cần phải có các giá trị nhạy cảm này trên trang web của bạn trong yêu cầu cấp cao nhất ngay từ đầu, thì bạn có thể sử dụng tiêu đề HTTP Critical-CH. Tiêu đề này sẽ yêu cầu trình duyệt thử lại yêu cầu ban đầu sau khi thêm những gợi ý bổ sung đó. Điều này có thể hữu ích đối với các hệ thống cũ khó cập nhật, nhưng tốt nhất là bạn không nên dựa vào những giá trị nhạy cảm này để phân phát HTML ban đầu của mình.

Tìm hiểu thêm

Để xem chuỗi tác nhân người dùng được rút gọn trong thực tế, hãy xem các nội dung sau:

  • Xem chuỗi tác nhân người dùng rút gọn cho thiết bị của bạn trên goo.gle/reduced-ua-demo
  • Xem tất cả các Gợi ý về ứng dụng tác nhân người dùng trong tiêu đề JavaScript và HTTP cho thiết bị của bạn trên goo.gle/ua-ch-demo
  • Gửi chuỗi tác nhân người dùng đã rút gọn trong trình duyệt của bạn bằng cách bật cờ Chrome #reduce-user-agent.

Bạn vẫn có thể đăng ký dùng thử theo nguyên gốc Giảm thiểu tác nhân người dùng để nhận tác nhân người dùng bị giảm bớt trên trang web của mình, mặc dù chúng tôi sẽ kết thúc bản dùng thử này vào đầu tháng 3 khi tiếp tục tăng cường gửi tác nhân người dùng bị giảm thiểu theo mặc định.

Chúng tôi có nhiều tài nguyên hơn trên trang đích rút gọn tác nhân người dùng và bạn cũng có thể nêu vấn đề trong kho lưu trữ GitHub rút gọn tác nhân người dùng chuyên dụng của chúng tôi.