Chrome nadal ogranicza informacje udostępniane w ciągu User-Agent, aby chronić prywatność użytkowników.
Od wersji 110 Chrome (luty 2023 r.) stopniowo wprowadzamy wartość stałą dla wersji i modelu urządzenia z Androida – wartość domyślna będzie zawsze wynosić Android 10
w przypadku modelu K
.
Jeśli do wykrywania wersji systemu operacyjnego, modelu urządzenia z Androidem lub szczegółowej wersji przeglądarki korzystasz z klienta użytkownika, konieczne może być podjęcie pewnych działań. Więcej informacji znajdziesz poniżej.
User-agent to ciąg znaków zawierający informacje o przeglądarce i środowisku użytkownika, np. o tym, że korzysta on z Chrome w wersji 110 na urządzeniu z Androidem. Twoja przeglądarka wysyła te informacje w nagłówku HTTP i udostępnia je za pomocą JavaScriptu.
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 przypadku każdego żądania, co jest głównym czynnikiem umożliwiającym śledzenie między witrynami. Naszym celem jest ograniczenie możliwości pasywnego zbierania tych danych, a jednocześnie udostępnienie interfejsów API, które umożliwią Ci aktywny dostęp do danych, gdy ich potrzebujesz.
Redukcja klienta użytkownika do tej pory
Rozpoczęliśmy już usuwanie niektórych danych użytkownika dostępnych domyślnie i zastępowanie ich wartościami stałymi.
Od wersji Chrome 101 numer wersji podrzędnej zastąpiliśmy zerami, np. Chrome/101.3.2.1 stało się Chrome/101.0.0.0.
Od wersji Chrome 107 informacje o wersji systemu operacyjnego na komputery i procesorze zostały zastąpione stałą wartością dla danej platformy.
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 |
Naprawiono wersję Androida i model urządzenia od Chrome 110
Od wersji Chrome 110 stopniowo wprowadzamy wartość stałą dla wersji Androida i modelu urządzenia.
Zamiast wartości Android 13
w modelu Pixel 7
wartość domyślna zawsze będzie 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
Format informacji o kliencie użytkownika nie ulega zmianie
Redukcja user-agent zmienia wartości zwracane w user-agent, ale format pozostaje taki sam. Jeśli używasz informacji o użytkowniku tylko do odczytania typu systemu operacyjnego lub głównej wersji przeglądarki, te dane będą nadal aktualizowane tak jak do tej pory i nie musisz nic robić.

Alternatywy dla klienta użytkownika
Jeśli obecnie używasz bardziej szczegółowych danych, warto sprawdzić, czy nie możesz zamiast tego skorzystać z ulepszania progresywnego lub wykrywania funkcji.
Pamiętaj, że user-agent to zwykła wartość podawana przez użytkownika. Musisz ją zweryfikować i nie zakładać, że jest prawidłowa. Wartość user-agent może być łatwo zmieniona przez użytkownika, rozszerzenia lub inne aplikacje albo może w ogóle nie zostać wysłana. W większości przypadków treści powinny działać poprawnie bez danych użytkownika.
Żądanie szczegółowych danych za pomocą wskazówek dotyczących klienta użytkownika
Istnieje wiele uzasadnionych powodów, dla których aplikacja może potrzebować dostępu do szczegółowych danych użytkownika, np. do dostarczania treści dostosowanych do urządzenia, funkcji zapobiegania oszustwom czy szczegółowego rejestrowania. Jeśli potrzebujesz bardziej szczegółowych danych, możesz użyć interfejsu API wskazówek dotyczących klienta użytkownika (UA-CH). Podobnie jak w przypadku klienta użytkownika, UA-CH jest dostępny w nagłówkach HTTP lub JavaScript.
Być może widzisz już nagłówki domyślne wysyłane z preiksem Sec-CH-UA-
, które informują o przeglądarce, jej głównej wersji, systemie operacyjnym i tym, czy przeglądarka działa na urządzeniu mobilnym.
⏫ Domyślne nagłówki żądań interfejsu User-Agent Client Hints w 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"
Aby poprosić o dodatkowe dane, możesz użyć nagłówka Accept-CH
w odpowiedzi.
W takim przypadku możesz poprosić o Sec-CH-UA-Platform-Version
i Sec-CH-UA-Model
, aby w kolejnych żądaniach znów uzyskać tę wersję Androida i ten typ 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
⏫ Nagłówki żądania z Chrome, w tym wersja i nazwa modelu Androida:
Sec-CH-UA-Platform-Version: "13.0.0"
Sec-CH-UA-Model: "Pixel 7"
To samo możesz zrobić w JavaScript, wywołując funkcję getHighEntropyValues()
z interfejsu API userAgentData
, przekazując tablicę z wybranymi wartościami: 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 na stronie masz zasoby z wielu źródeł, które potrzebują tych wartości, możesz zezwolić na dostęp za pomocą nagłówka HTTP Permissions-Policy
lub za pomocą metatagu Delegate-CH
w kodzie HTML.
Jeśli Twoja witryna musi mieć te wartości w pierwszym żądaniu na najwyższym poziomie, możesz użyć nagłówka HTTP Critical-CH
, który poinformuje przeglądarkę, aby ponownie wysłała początkowe żądanie z dodatkowymi wskazówkami.
Może to być przydatne w przypadku starszych systemów, które trudno jest aktualizować, ale w idealnej sytuacji nie powinieneś polegać na tych wartościach wrażliwych podczas wyświetlania początkowego kodu HTML.
Więcej informacji
Aby zobaczyć w akcji skrócony ciąg znaków klienta użytkownika, zapoznaj się z tymi materiałami:
- Aby wyświetlić zredukowany ciąg klienta użytkownika na Twoim urządzeniu, otwórz stronę goo.gle/reduced-ua-demo.
- Sprawdź wszystkie podpowiedzi klienta dotyczące nagłówka User-Agent w JavaScript i w nagłówku HTTP na Twoim urządzeniu na stronie goo.gle/ua-ch-demo
- Aby wysyłać w przeglądarce skrócony ciąg znaków klienta użytkownika, włącz opcję
#reduce-user-agent
flagi Chrome.
Nadal możesz zarejestrować się w programie testowania origin w ramach redukcji klienta użytkownika, aby otrzymywać w swojej witrynie klienta użytkownika z ograniczonymi możliwościami. Zakończymy ten program na początku marca, ponieważ będziemy stopniowo zwiększać liczbę wysyłanych domyślnie klientów użytkownika z ograniczonymi możliwościami.
Więcej materiałów znajdziesz na stronie wprowadzającej do redukcji klienta użytkownika. Możesz też zgłaszać problemy w specjalnym repozytorium GitHub na ten temat.