Giảm thiểu tác nhân người dùng là một nỗ lực để giảm các khu vực tạo vân tay thụ động bằng cách giảm thông tin trong chuỗi User-Agent (UA) xuống chỉ còn thương hiệu và phiên bản quan trọng của trình duyệt, sự khác biệt trên máy tính để bàn hoặc thiết bị di động và nền tảng mà trình duyệt đang chạy. Hiện tại, chuỗi UA được chia sẻ trên mọi yêu cầu HTTP và hiển thị trong JavaScript cho tất cả các tài nguyên mà trình duyệt tải. Tệp này chứa thông tin quan trọng về trình duyệt, nền tảng đang chạy và khả năng của trình duyệt đó. Gợi ý ứng dụng tác nhân người dùng (UA-CH) có thể cung cấp thông tin tương tự như chuỗi UA đầy đủ, trong khi chỉ cho phép các trang web yêu cầu thông tin UA mà chúng cần.
Kể từ phiên bản Chrome 95 Beta, chúng tôi sẽ mở bản dùng thử theo nguyên gốc của tính năng Giảm thiểu tác nhân người dùng để cho phép các trang web chọn nhận ngay chuỗi UA được giảm bớt. Điều này sẽ cho phép các trang web phát hiện và khắc phục vấn đề trước khi UA rút gọn trở thành hành vi mặc định trong Chrome (theo kế hoạch, quá trình giảm thiểu sẽ bắt đầu vào quý 2 năm 2022). Nếu bạn muốn kiểm thử bản dùng thử theo nguyên gốc trên 95 người dùng Beta trước khi bản thử nghiệm ra mắt cho dân số ổn định, hãy nhớ chọn tham gia và kiểm thử trước ngày phát hành Chrome 95 (hiện đã lên lịch vào ngày 19 tháng 10 năm 2021).
Dưới đây là thông tin tổng quan về bản dùng thử theo nguyên gốc và những điều có thể xảy ra. Và như mọi khi, chúng tôi hoan nghênh ý kiến phản hồi hoặc mọi vấn đề trong suốt quá trình dùng thử này trong kho lưu trữ GitHub của UA.
Tác nhân người dùng là gì?
Chuỗi User-Agent (UA) được chia sẻ trong mọi yêu cầu HTTP và hiển thị trong JavaScript cho mọi tài nguyên mà trình duyệt tải. Hiện tại, tệp này chứa thông tin quan trọng về trình duyệt và nền tảng mà trình duyệt đang chạy.
Tại sao Tác nhân người dùng bị giảm?
Tính năng Giảm thiểu tác nhân người dùng là một nỗ lực nhằm giảm bớt các khu vực tạo vân tay số thụ động trong trình duyệt Chrome (được công bố lần đầu vào tháng 1 năm 2020). Khi giảm thông tin trong chuỗi UA xuống chỉ còn thương hiệu và phiên bản quan trọng của trình duyệt, sự khác biệt của trình duyệt trên máy tính hoặc thiết bị di động và nền tảng mà trình duyệt đang chạy, việc xác định người dùng cá nhân trở nên khó khăn hơn.
Ảnh hưởng đối với nhà phát triển web
Các trang web nên chuẩn bị để nhận được số chuỗi UA giảm và cân nhắc việc tham gia bản dùng thử theo nguyên gốc (chi tiết bên dưới). Các giá trị tác nhân người dùng được giảm sẽ xuất hiện trong:
- Tiêu đề của yêu cầu HTTP
User-Agent
- Phương thức getter của JavaScript
navigator.userAgent
- Phương thức getter của JavaScript
navigator.platform
- Phương thức getter của JavaScript
navigator.appVersion
Để nhận được nhiều thông tin ứng dụng hơn so với thông tin do Tác nhân người dùng rút gọn chia sẻ, các trang web sẽ cần phải chuyển sang API Gợi ý ứng dụng khách cho tác nhân người dùng mới. Để biết thêm thông tin chi tiết về chiến lược di chuyển, hãy xem phần Di chuyển sang Gợi ý ứng dụng tác nhân người dùng.
Các kế hoạch giảm thiểu tác nhân người dùng hiện không bao gồm iOS và WebView. Do đó, các nền tảng đó sẽ tiếp tục nhận được chuỗi tác nhân người dùng đầy đủ. Lý do chính là các nền tảng này chưa triển khai Gợi ý ứng dụng tác nhân người dùng.
Bản dùng thử theo nguyên gốc này hoạt động như thế nào?
Bản dùng thử theo nguyên gốc này hơi khác so với bản dùng thử theo nguyên gốc tiêu chuẩn. Các bản dùng thử theo nguyên gốc tiêu chuẩn chỉ có thể kiểm soát hành vi trong phản hồi (ví dụ: kiểm soát quyền truy cập vào một API trong JavaScript của phản hồi). Trong bản dùng thử này, mục tiêu của chúng tôi không chỉ là sửa đổi chuỗi UA được cung cấp trong API JavaScript, mà còn sửa đổi tiêu đề Tác nhân người dùng được gửi trên yêu cầu HTTP.
Để làm được việc này, chúng ta sẽ xác định một gợi ý tạm thời về ứng dụng khách có tên là Sec-CH-UA-Reduced
. Gợi ý này sẽ cho biết rằng giá trị tiêu đề tác nhân người dùng có chứa chuỗi UA được rút gọn. Gợi ý ứng dụng Sec-CH-UA-Reduced
sẽ chỉ được gửi (cùng với chuỗi UA đã giảm) nếu mã thông báo bản dùng thử theo nguyên gốc hợp lệ và gợi ý của ứng dụng Sec-CH-UA-Reduced
sẽ không hoạt động sau khi hết thời gian dùng thử theo nguyên gốc. Xin lưu ý rằng yêu cầu điều hướng đầu tiên sẽ vẫn nhận được chuỗi tác nhân người dùng chưa rút gọn trừ phi bạn đặt Critical-CH
header
.
Các yêu cầu tài nguyên phụ đến cùng một nguồn gốc sẽ tự động gửi cùng một chuỗi User-Agent như yêu cầu cấp cao nhất được gửi. Các yêu cầu về tài nguyên phụ đến các nguồn gốc của bên thứ ba cũng sẽ gửi cùng một chuỗi Tác nhân người dùng như yêu cầu cấp cao nhất, bao gồm cả chuỗi UA được rút gọn nếu mã dùng thử theo nguyên gốc hợp lệ, với điều kiện là chính sách về quyền cho phép.
Làm cách nào để tham gia bản dùng thử theo nguyên gốc Giảm thiểu tác nhân người dùng?
Để đăng ký bản dùng thử theo nguyên gốc và nhận mã thông báo cho miền của bạn, hãy truy cập trang Bản dùng thử giảm thiểu tác nhân người dùng.
Cập nhật tiêu đề phản hồi HTTP của bạn:
- Thêm
Origin-Trial: <ORIGIN TRIAL TOKEN>
vào tiêu đề phản hồi HTTP, trong đó <ORIGIN TRIAL TOKEN
> chứa mã thông báo mà bạn nhận được khi đăng ký bản dùng thử theo nguyên gốc. - Thêm
Accept-CH: Sec-CH-UA-Reduced
vào tiêu đề phản hồi HTTP. - Việc đặt
Accept-CH
sẽ chỉ khiến chuỗi User-Agent thu gọn được gửi đi trong các yêu cầu tiếp theo đến nguồn gốc; để gửi lại yêu cầu điều hướng đầu tiên bằng chuỗi User-Agent được rút gọn, hãy thêmCritical-CH: Sec-CH-UA-Reduced
vào tiêu đề phản hồi HTTP, ngoài các tiêu đềAccept-CH
vàOrigin-Trial
. - Lưu ý: Nếu tiêu đề phản hồi chứa mã thông báo
Origin-Trial
vàAccept-CH: Sec-CH-UA-Reduced
hợp lệ, thì mọi yêu cầu về tài nguyên phụ (ví dụ: hình ảnh hoặc biểu định kiểu) và điều hướng phụ (ví dụ: iframe) sẽ gửi chuỗi UA rút gọn, ngay cả khi nguồn gốc của các yêu cầu đó không được đăng ký trong bản dùng thử theo nguyên gốc.
- Thêm
Tải trang web của bạn trong Chrome M95 (trở lên) và bắt đầu nhận chuỗi UA rút gọn.
Gửi mọi vấn đề hoặc ý kiến phản hồi đến kho lưu trữ GitHub của UA.
Vui lòng truy cập vào https://uar-ot.glitch.me/ để xem bản minh hoạ đơn giản về bản dùng thử theo nguyên gốc (cùng với mã nguồn).
Cách tham gia dùng thử theo nguyên gốc dưới dạng ứng dụng do bên thứ ba nhúng?
Kể từ Chrome 96, các tệp nhúng của bên thứ ba (ví dụ: một iframe bên trong một trang web khác) có thể tham gia bản dùng thử theo nguyên gốc mà không cần trang web cấp cao nhất phải đăng ký.
Cách đăng ký làm nội dung nhúng của bên thứ ba:
- Truy cập vào phần Bản dùng thử giảm thiểu tác nhân người dùng rồi nhấp vào Gia nhập.
- Khi tạo mã thông báo, hãy nhớ chọn hộp đánh dấu
Third-party matching
. - Để nhận tiêu đề Tác nhân người dùng rút gọn từ nội dung nhúng của bên thứ ba, hãy cập nhật tiêu đề phản hồi HTTP.
- Để nhận được chuỗi Tác nhân người dùng rút gọn trong API JavaScript, mã thông báo dùng thử phải được chèn qua JavaScript.
Một số điểm quan trọng về việc chạy bản dùng thử theo nguyên gốc trên nội dung nhúng của bên thứ ba:
+ không thể chỉ định Critical-CH
cho các tệp nhúng của bên thứ ba, vậy nên
thao tác điều hướng đầu tiên sẽ không gửi chuỗi UA được rút gọn, mặc dù yêu cầu
tài nguyên phụ trong nội dung nhúng của bên thứ ba sẽ gửi chuỗi UA được rút gọn.
+ Nếu bản dùng thử theo nguyên gốc được xác thực cho nguồn gốc của một nội dung nhúng của bên thứ ba, thì các yêu cầu tiếp theo đến cùng nguồn gốc đó trong thành phần điều hướng cấp cao nhất sẽ gửi chuỗi UA rút gọn. Vì lý do này, bạn nên tăng cường tham gia chương trình dùng thử theo nguyên gốc cho cả yêu cầu cấp cao nhất và yêu cầu nhúng
cùng nhau.
+ Nếu tác nhân người dùng đã tắt cookie của bên thứ ba, thì bản dùng thử theo nguyên gốc sẽ không hoạt động đối với tiêu đề User-Agent
trong các yêu cầu nhúng của bên thứ ba, mặc dù API JavaScript vẫn sẽ nhận được chuỗi UA rút gọn.
Làm cách nào để xác thực rằng bản dùng thử theo nguyên gốc đang hoạt động?
Để xác thực rằng bản dùng thử theo nguyên gốc đang hoạt động, hãy kiểm tra tiêu đề của yêu cầu và đảm bảo những thông tin sau:
- Tiêu đề Tác nhân người dùng chứa phiên bản rút gọn. Tham khảo danh sách mẫu các chuỗi UA được giảm.
Một cách dễ dàng để biết là chuỗi phiên bản nhỏ của Chrome có chứa
0.0.0
. - Tiêu đề
Sec-CH-UA-Reduced
được đặt thành?1
.
Tiêu đề của phản hồi ban đầu chứa mã thông báo bản dùng thử theo nguyên gốc sẽ có dạng như sau:
![Tiêu đề của phản hồi ban đầu chứa mã thông báo bản dùng thử ban đầu.](https://developers.google.cn/static/privacy-sandbox/assets/images/blog/initial-responses-header-9ce0ada0d63a6.png?authuser=9&hl=vi)
Tiêu đề của yêu cầu tiếp theo chứa chuỗi UA được rút gọn sẽ có dạng như sau:
![Tiêu đề của yêu cầu tiếp theo có chứa chuỗi UA được rút gọn.](https://developers.google.cn/static/privacy-sandbox/assets/images/blog/subsequent-request-header-e2a286ce49d8e.png?authuser=9&hl=vi)
Làm cách nào để ngừng tham gia bản dùng thử theo nguyên gốc Giảm thiểu tác nhân người dùng?
Tại một thời điểm cụ thể trong thời gian dùng thử, bạn có thể ngừng tham gia và nhận toàn bộ chuỗi Tác nhân người dùng. Cách ngừng tham gia:
- Gửi tiêu đề
Accept-CH
trong phản hồi HTTP không chứaSec-CH-UA-Reduced
. Lưu ý:Accept-CH
có giá trị trống là một cách hợp lệ để thực hiện việc này nếu trang web của bạn không yêu cầu bất kỳ Gợi ý ứng dụng nào khác. - Xoá tiêu đề
Origin-Trial
cho bản dùng thử Giảm thiểu tác nhân người dùng khỏi phản hồi HTTP của bạn. - Nếu được đặt, hãy xoá
Sec-CH-UA-Reduced
khỏi tiêu đềCritical-CH
trong phản hồi HTTP.
Bản dùng thử theo nguyên gốc sẽ kéo dài bao lâu?
Bản dùng thử theo nguyên gốc Giảm thiểu UA sẽ chạy trong ít nhất 6 tháng, tương ứng với khoảng 6 mốc quan trọng của Chrome. Bản dùng thử theo nguyên gốc sẽ xuất hiện trong M95 và kết thúc vào M101. Tại thời điểm đó, Chrome sẽ đánh giá ý kiến phản hồi từ bản dùng thử gốc trước khi tiếp tục gửi chuỗi Tác nhân người dùng đã rút gọn theo giai đoạn theo kế hoạch ra mắt. Nếu một trang web cần nhiều thời gian hơn, họ có thể chọn tham gia bản dùng thử theo nguyên gốc không dùng nữa. Sau đó, họ có thể truy cập vào chuỗi UA đầy đủ trong ít nhất 6 tháng nữa. Chúng tôi sẽ công bố thêm thông tin chi tiết về bản dùng thử việc ngừng sử dụng khi giai đoạn này đã sẵn sàng.
Làm cách nào để chia sẻ ý kiến phản hồi về bản dùng thử theo nguyên gốc Giảm thiểu tác nhân người dùng?
Gửi mọi vấn đề hoặc ý kiến phản hồi đến kho lưu trữ GitHub của UA.