Przygotuj się na redukcję klientów użytkownika w Chrome

Aby chronić prywatność użytkownika, Chrome stale zmniejsza informacje udostępniane w ciągu znaków klienta użytkownika.

Od wersji Chrome 110 (luty 2023 r.) będziemy stopniowo wprowadzać stałą wartość dla wersji Androida i modelu urządzenia – domyślną wartością w modelu K będzie zawsze Android 10. Jeśli klient użytkownika wykrywa wersję systemu operacyjnego, model urządzenia z Androidem lub szczegółową wersję przeglądarki, może być konieczne podjęcie działania. Poniżej znajdziesz szczegółowe informacje.

Klient użytkownika to ciąg znaków zawierający informacje o przeglądarce użytkownika i jego środowisku – na przykład wiedzą, że użytkownik korzysta z Chrome w wersji 110 na Androidzie. Twoja przeglądarka wysyła go w nagłówku HTTP i udostępnia poprzez JavaScript.

Problem z pełnym ciągiem znaków klienta użytkownika polega na tym, że domyślnie udostępnia on szczegółowe informacje o przeglądarce w każdym żądaniu, co jest ważnym czynnikiem umożliwiającym śledzenie w witrynach. Naszym celem jest ograniczenie możliwości pasywnego zbierania tych danych, a jednocześnie udostępnienie interfejsów API, które umożliwiają aktywny dostęp do danych, gdy są potrzebne.

Dotychczasowe zmniejszenie klienta użytkownika

Zaczęliśmy usuwać niektóre dane klienta użytkownika, które są domyślnie dostępne, i zastępować je stałymi wartościami.

W Chrome 101 zastąpiliśmy numer wersji podrzędnej zerami, np. Chrome/101.3.2.1 zmienił nazwę na Chrome/101.0.0.0.

W Chrome 107 zastąpiliśmy wersję systemu operacyjnego na komputery i informacje o CPU stałą wartością dla tej platformy.

MacMacintosh Intel Mac OS X 10_15_7
WindowsWindows NT 10.0; Windows 64; x64
ChromeOSX11, CrOS x86_64 14541.0.0
LinuxX11, Linux x86_64

Poprawiono wersję Androida i model urządzenia od Chrome 110.

W Chrome 110 stopniowo wprowadzamy stałą wartość dla wersji Androida i modelu urządzenia. Zamiast wyświetlać coś takiego jak Android 13 na Pixel 7, domyślna wartość zawsze będzie Android 10 dla modelu K.

Przed: klient użytkownika zawiera wersję Androida i model urządzenia

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

Po: zmniejszona liczba klientów użytkownika z poprawioną wersją Androida i modelem urządzenia

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

Format klienta użytkownika się nie zmienił

Redukcja klienta użytkownika zmienia wartości zwracane przez klienta użytkownika, ale format pozostaje taki sam. Jeśli używasz klienta użytkownika tylko do odczytu typu systemu operacyjnego lub głównej wersji przeglądarki, dane będą aktualizowane tak jak wcześniej i nie musisz nic robić.

Platforma, nazwa i wersja główna przeglądarki oraz wskaźniki dotyczące urządzeń mobilnych w ciągu znaków klienta użytkownika są aktualizowane tak jak wcześniej.
Typ systemu operacyjnego, model urządzenia i wersja pomocnicza przeglądarki to wartości statyczne.
Pozostałe części ciągu znaków klienta użytkownika nie uległy zmianie.

Alternatywy dla klienta użytkownika

Jeśli obecnie korzystasz z bardziej szczegółowych danych, warto sprawdzić, czy zamiast tego możesz korzystać z progresywnego ulepszania lub wykrywania funkcji.

Zawsze pamiętaj, że klient użytkownika działa tak samo, jak każda inna wartość podana przez użytkownika – należy ją zweryfikować i nie zakładać, że jest dokładna. Użytkownik, rozszerzenia, inne klienty mogą łatwo zmienić wartość klienta użytkownika. Może też nie zostać w ogóle wysłana. W większości przypadków należy być w stanie dostarczyć użytkownikom działające treści bez danych klienta użytkownika.

Wysyłanie żądań o szczegółowe dane za pomocą wskazówek dotyczących klienta użytkownika

Istnieje wiele uzasadnionych powodów dostępu do szczegółowych danych o klientach użytkownika, np. udostępnianie treści przeznaczonych dla konkretnego urządzenia, funkcji zapobiegania oszustwom lub szczegółowe zapisywanie w dzienniku. Jeśli potrzebujesz bardziej szczegółowych danych, możesz skorzystać z interfejsu User-Agent Client Hints (UA-CH) API. Podobnie jak klient użytkownika, UA-CH jest dostępny przez nagłówki HTTP lub kod JavaScript.

Być może udało Ci się już zobaczyć domyślne nagłówki wysyłane z prefiksem Sec-CH-UA-, który informuje o przeglądarce, jej głównej wersji, systemie operacyjnym i o tym, czy przeglądarka jest urządzeniem mobilnym.

Domyślne nagłówki żądań klienta User-Agent Client Hints z 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"

Możesz użyć nagłówka Accept-CH w odpowiedzi, aby poprosić o więcej danych. W takiej sytuacji w kolejnych prośbach możesz poprosić Sec-CH-UA-Platform-Version i Sec-CH-UA-Model o przywrócenie tej wersji Androida i typu urządzenia.

Nagłówek odpowiedzi z serwera określający wersję i model platformy:

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

Wysyłaj żądania nagłówków Chrome z informacją o wersji Androida i nazwie modelu:

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

To samo możesz zrobić w języku JavaScript, wywołując metodę getHighEntropyValues() w interfejsie API userAgentData, przesyłając tablicę odpowiednich wartości: platformVersion i model. Zwraca obietnicę z obiektem zawierającym określone wartości.

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

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

Żądania z innych domen lub żądania początkowe

Jeśli masz na stronie zasoby z innych domen, które wymagają tych wartości, możesz zezwolić na dostęp za pomocą nagłówka HTTP Permissions-Policy lub użycia metatagu Delegate-CH w kodzie HTML.

Jeśli w przypadku witryny konieczne jest podanie tych wartości poufnych w pierwszym żądaniu najwyższego poziomu, możesz użyć nagłówka HTTP Critical-CH, który spowoduje, że przeglądarka ponownie wyśle żądanie początkowe z dodatkowymi wskazówkami. Może to być pomocne w przypadku starszych systemów, które są trudne do aktualizacji, ale nie należy polegać na tych wartościach poufnych przy wyświetlaniu początkowego kodu HTML.

Więcej informacji

Aby sprawdzić, jak działa skrócony ciąg znaków klienta użytkownika, zapoznaj się z tymi materiałami:

  • Sprawdź skrócony ciąg znaków klienta użytkownika Twojegourządzenia na goo.gle/reduced-ua-demo
  • Wszystkie wskazówki dotyczące klienta klienta użytkownika (JavaScript i HTTP) dla Twojego urządzenia znajdziesz na stronie goo.gle/ua-ch-demo.
  • Wyślij skrócony ciąg znaków klienta użytkownika w przeglądarce, włączając #reduce-user-agent flagę Chrome.

Nadal możesz też zarejestrować się w programie testowania origin redukcji klientów użytkownika, aby uzyskać dostęp do mniejszej liczby klientów użytkownika w swojej witrynie, ale zakończymy ten okres próbny na początku marca, ponieważ będziemy nadal domyślnie wysyłać te skrócone klienty.

Więcej materiałów znajdziesz na stronie docelowej redukcji liczby klientów użytkownika. Problemy możesz też zgłaszać w naszym repozytorium GitHub z redukcją klientów użytkownika.