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 lượng 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ẽ dần dần giới thiệu giá trị cố định cho phiên bản Android và mẫ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, thì bạn có thể cần phải hành động. Hãy đọc tiếp để biết thông tin 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 và môi trường của người dùng, chẳng hạn như biết rằng một 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 sẽ gửi thông tin này trong một tiêu đề HTTP và cung cấp thông tin đó thông 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 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 thiểu cơ hội thu thập dữ liệu này một cách thụ động, đồng thời cung cấp các API để cho phép bạn chủ động truy cập vào dữ liệu khi cần.

Số lượng tác nhân người dùng đã giảm cho đến thời điểm hiện tại

Chúng tôi đã bắt đầu xoá một số dữ liệu về 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.

Kể 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.

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

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à kiểu thiết bị kể từ Chrome 110

Kể từ Chrome 110, chúng tôi sẽ dần dần ra mắt giá trị cố định cho phiên bản Android và mẫu thiết bị. Thay vì thấy một 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 đây: user-agent bao gồm phiên bản Android và mẫ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 user-agent với phiên bản Android và mẫu thiết bị cố định

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 giảm mã nhận dạng người dùng sẽ thay đổi các giá trị được trả về trong mã nhận dạng 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 trình duyệt chính, thì dữ liệu đó sẽ tiếp tục cập nhật như trước và bạn không cần làm gì cả.

Các phần nền tảng, tên trình duyệt, phiên bản chính của trình duyệt và chỉ báo thiết bị di động của chuỗi tác nhân người dùng tiếp tục cập nhật như trước.
Loại hệ điều hành, kiể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 vẫn giữ nguyên.

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

Nếu hiện đang sử dụng dữ liệu chi tiết hơn, bạn nên kiểm tra xem có thể sử dụng tính năng cải tiến 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ị khác do người dùng cung cấp. Bạn nên xác thực tác nhân người dùng và không giả định rằng tác nhân người dùng đó là chính xác. Người dùng, tiện ích, ứng dụng khác có thể dễ dàng thay đổi giá trị user-agent hoặc có thể giá trị này hoàn toàn không được gửi. Trong hầu hết các trường hợp, bạn có thể phân phối nội dung hoạt động 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 Thông tin mô tả của ứ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 gian lận 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 ý cho ứng dụng tác nhân người dùng (UA-CH) để truy cập vào dữ liệu đó. Giống như tác nhân người dùng, UA-CH có sẵn thông qua tiêu đề HTTP hoặc JavaScript.

Bạn có thể đã thấy các tiêu đề mặc định được gửi bằng tiền tố Sec-CH-UA- cho bạn biết trình duyệt, phiên bản chính, 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 đề yêu cầu User-Agent Client Hints mặc định của 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 phản hồi để yêu cầu 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 nền tảng và mô hình:

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

Yêu cầu Chrome trả về các tiêu đề, bao gồm cả phiên bản Android và tên mẫu:

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 vào một mảng các giá trị mà bạn muốn: platformVersionmodel. Thao tác này sẽ trả về một lời hứa với một đố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ác tài nguyên trên trang của bạn cần các 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 trang web của bạn cần có các giá trị nhạy cảm này trong yêu cầu cấp cao nhất đầu tiên, 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 với các gợi ý bổ sung đó. Điều này có thể hữu ích cho các hệ thống cũ khó cập nhật, nhưng tốt nhất 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.

Tìm hiểu thêm

Để xem chuỗi tác nhân người dùng đã rút gọn trong thực tế, hãy xem những 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 ý ứng dụng Tác nhân người dùng của 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ý tham gia thử nghiệm Giảm tác nhân người dùng theo nguồn gốc để nhận tác nhân người dùng được giảm trên trang web của mình, mặc dù chúng tôi sẽ kết thúc thử nghiệm này vào đầu tháng 3 khi tiếp tục tăng cường việc gửi tác nhân người dùng được giảm theo mặc định.

Chúng tôi có nhiều tài nguyên khác trên trang đích về việc giảm tác nhân người dùng. Bạn cũng có thể nêu vấn đề trên kho lưu trữ GitHub dành riêng cho việc giảm tác nhân người dùng.