Testowanie origin redukcji klienta użytkownika

Zmniejszenie rozmiaru nagłówka User-Agent to działanie mające na celu ograniczenie powierzchni do pasywnego pobierania odcisków palców poprzez ograniczenie informacji w ciągu User-Agent (UA) tylko do marki i istotnej wersji przeglądarki, rozróżnienia na komputery i urządzenia mobilne oraz platformy, na której działa. Obecnie ciąg tekstowy UA jest udostępniany w każdym żądaniu HTTP i udostępniany w JavaScriptowi wszystkim zasobom wczytywanym przez przeglądarkę. Zawiera ona ważne informacje o przeglądarce, platformie, na której działa, oraz jej możliwościach. Wskazówki dotyczące klienta User-Agent (UA-CH) mogą zawierać te same informacje co pełny ciąg znaków UA, a jednocześnie umożliwiają witrynom żądanie tylko tych informacji UA, których potrzebują.

Począwszy od wersji Chrome 95 w wersji beta udostępnimy testowanie wersji źródłowej obsługi redukcji identyfikatora użytkownika, aby umożliwić witrynom korzystanie z obsługi redukcji ciągu UA. Dzięki temu witryny będą mogły wykrywać i rozwiązywać problemy, zanim ograniczone UA stanie się domyślnym zachowaniem w Chrome (ograniczenie jest planowane na drugi kwartał 2022 r.). Jeśli chcesz przetestować wersję próbną pochodzenia na urządzeniach użytkowników wersji beta 95, zanim udostępnimy ją użytkownikom wersji stabilnej, musisz się zarejestrować i przetestować ją przed datą wydania Chrome 95 (obecnie zaplanowaną na 19 października 2021 r.).

Poniżej znajdziesz omówienie okresu próbnego pochodzenia i informacje o tym, czego możesz się spodziewać. Jak zawsze chętnie przyjmiemy opinie i zgłaszane problemy w repozytorium GitHub dotyczące redukcji UA.

Co to jest User-Agent?

Ciąg znaków Klient użytkownika (UA) jest udostępniany w każdym żądaniu HTTP i udostępniany w JavaScriptowi wszystkim zasobom wczytywanym przez przeglądarkę. Obecnie zawiera ona istotne informacje o przeglądarce i platformie, na której działa.

Dlaczego redukcja klienta użytkownika?

Redukcja klienta użytkownika to inicjatywa mająca na celu ograniczenie powierzchni do pasywnego pobierania odcisków palców w przeglądarce Chrome, która została po raz pierwszy ogłoszona w styczniu 2020 r. Ograniczenie informacji w ciągu UA do tylko marki i znaczącej wersji przeglądarki, jej wersji na komputer lub urządzenie mobilne oraz platformy, na której działa, utrudnia identyfikację poszczególnych użytkowników.

Co to oznacza dla programistów stron internetowych?

Witryny powinny się przygotować na otrzymywanie skróconych ciągów znaków UA i rozważyć udział w próbnym wdrożeniu wersji źródłowej (szczegóły poniżej). Zredukowane wartości klienta użytkownika będą widoczne w:

  • Nagłówek żądania HTTP User-Agent
  • navigator.userAgent getter JavaScriptu
  • navigator.platform getter JavaScriptu
  • navigator.appVersion getter JavaScriptu

Aby uzyskać więcej informacji o kliencie niż te, które są udostępniane przez uproszczony ciąg User-Agent, witryny muszą przejść na nowy interfejs API Client Hints. Więcej informacji o strategiach migracji znajdziesz w artykule Migracja na wskazówki dotyczące klienta użytkownika.

Plany dotyczące redukcji klienta użytkownika nie obejmują obecnie systemu iOS ani WebView, dlatego te platformy będą nadal otrzymywać pełny ciąg znaków klienta użytkownika. Głównym powodem jest to, że te platformy nie mają jeszcze zaimplementowanych wskazówek dotyczących klienta użytkownika.

Jak działa okres próbny dotyczący pochodzenia?

Ta wersja próbna origin różni się nieco od standardowej wersji próbnej origin. Standardowe wersje próbne pochodzenia mogą kontrolować tylko zachowanie w odpowiedzi (np. kontrolować dostęp do interfejsu API w pliku JavaScript odpowiedzi). W ramach tego testu chcemy nie tylko zmodyfikować ciąg znaków UA dostarczony w interfejsach Javascript API, ale też zmodyfikować nagłówek User-Agent wysyłany w żądaniu HTTP.

Aby to umożliwić, definiujemy tymczasowy podpowiedź klienta o nazwieSec-CH-UA-Reduced, której obecność w żądaniu będzie wskazywać, że wartość nagłówka User-Agent zawiera skrócony ciąg tekstowy UA. Wskazówka dotycząca klienta Sec-CH-UA-Reduced zostanie wysłana (wraz z ograniczonym ciągiem znaków UA) tylko wtedy, gdy token wersji próbnej pochodzenia jest ważny. Wskazówka dotycząca klienta Sec-CH-UA-Reduced nie będzie działać po wygaśnięciu wersji próbnej pochodzenia. Pamiętaj, że pierwsze żądanie nawigacji nadal będzie otrzymywać nieskracany ciąg znaków User-Agent, chyba że ustawisz parametr Critical-CH header.

Żądania dotyczące podzasobów wysyłane do tego samego pochodzenia będą automatycznie zawierać ten sam ciąg User-Agent co żądanie wysłane na najwyższym poziomie. Żądania dotyczące podresursów wysyłane do zewnętrznych źródeł będą również zawierać ten sam ciąg User-Agent co żądanie najwyższego poziomu, w tym skrócony ciąg UA, jeśli token próbny źródła jest prawidłowy, o ile zasady dotyczące uprawnień na to pozwalają.

Jak wziąć udział w testach wersji próbnej funkcji Redukcja klienta użytkownika?

  1. Aby zarejestrować się w testowaniu origin i uzyskać token dla swoich domen, odwiedź stronę testowania origin dla redukcji klienta użytkownika.

  2. Zaktualizuj nagłówki odpowiedzi HTTP:

    1. Dodaj Origin-Trial: <ORIGIN TRIAL TOKEN> do nagłówka odpowiedzi HTTP, gdzie <ORIGIN TRIAL TOKEN> zawiera token otrzymany podczas rejestracji w wersji próbnej.
    2. Dodaj Accept-CH: Sec-CH-UA-Reduced do nagłówka odpowiedzi HTTP.
    3. Ustawienie wartości Accept-CH spowoduje wysłanie skróconego ciągu znaków w kliencie użytkownika tylko w kolejnych żądaniach do źródła. Aby ponownie wysłać żądanie pierwszej nawigacji z krótszym ciągiem znaków w kliencie użytkownika, dodaj do nagłówka odpowiedzi HTTP ciąg znaków Critical-CH: Sec-CH-UA-Reduced, oprócz nagłówków Accept-CHOrigin-Trial.
    4. Uwaga: jeśli nagłówki odpowiedzi zawierają prawidłowy token Origin-TrialAccept-CH: Sec-CH-UA-Reduced, wszystkie żądania zasobów podrzędnych (np. obrazów lub arkuszy stylów) oraz podmenu (np. ramek iframe) będą wysyłać skrócony ciąg tekstowy UA, nawet jeśli źródła tych żądań nie są zarejestrowane w testach wersji próbnej.
  3. Załaduj swoją witrynę w Chrome M95 (lub nowszej wersji) i zacznij otrzymywać skrócony ciąg znaków UA.

  4. Wszelkie problemy lub opinie możesz przesłać do repozytorium GitHub narzędzia UA Reduction.

  5. Aby zobaczyć prostą demonstrację próbnej wersji origin (wraz z kodem źródłowym), wejdź na stronę https://uar-ot.glitch.me/.

Jak wziąć udział w testach wersji natywnej jako zewnętrzny dostawca treści?

Od wersji 96 Chrome elementy osadzone innych firm (np. element iframe w innej witrynie) mogą brać udział w próbnym wyświetlaniu treści pochodzących z innej witryny bez konieczności rejestracji witryny najwyższego poziomu.

Aby zarejestrować się jako osoba z zewn. źródła:

  1. Otwórz stronę Testowa wersja próbna usługi User Agent Reduction i kliknij Zarejestruj.
  2. Podczas tworzenia tokenu pamiętaj, aby zaznaczyć pole Third-party matching.
  3. Aby otrzymać skrócony nagłówek User-Agent z zawartości wbudowanej od zewnętrznego dostawcy, zaktualizuj nagłówki odpowiedzi HTTP.
  4. Aby otrzymać skrócony ciąg tekstowy klienta użytkownika w interfejsach Javascript API, token testowy musi zostać wstrzyknięty za pomocą JavaScriptu.

Ważne informacje o testowaniu pochodzenia w przypadku wbudowanych treści innych firm: + Critical-CH nie można określić w przypadku wbudowanych treści innych firm, więc pierwsza nawigacja nie wyśle skróconego ciągu UA, ale żądania dotyczące zasobów podrzędnych wbudowanych treści innych firm wyślą skrócony ciąg UA. + Jeśli próba pochodzenia jest sprawdzana pod kątem pochodzenia wbudowanego elementu pochodzącego od osoby trzeciej, kolejne żądania wysyłane do tego samego pochodzenia w menu najwyższego poziomu będą zawierać skrócony ciąg znaków UA. Dlatego zalecamy stopniowe zwiększanie udziału w próbie dotyczącej pochodzenia zarówno w przypadku żądań najwyższego poziomu, jak i wbudowanych żądań. + Jeśli w kliencie użytkownika są wyłączone pliki cookie innych firm, próba pochodzenia nie będzie działać w przypadku nagłówka User-Agent w żądaniach z umieszczonymi elementami innych firm, ale interfejsy API JavaScript będą nadal otrzymywać skrócony ciąg znaków UA.

Jak mogę sprawdzić, czy okres próbny pochodzenia działa?

Aby sprawdzić, czy próbna wersja pochodzenia działa, sprawdź nagłówki żądania i upewnij się, że:

  1. Nagłówek User-Agent zawiera wersję skróconą. Zapoznaj się z listą przykładów skróconych ciągów znaków UA. Łatwo to sprawdzić, ponieważ ciąg znaków wersji podrzędnej Chrome zawiera 0.0.0.
  2. Nagłówek Sec-CH-UA-Reduced ma wartość ?1.

Nagłówki początkowej odpowiedzi zawierające token okresu próbnego źródła powinny wyglądać tak:

Nagłówki początkowej odpowiedzi zawierające token origin-trial.

Kolejne nagłówki żądań zawierające skrócony ciąg tekstowy UA powinny wyglądać tak:

Kolejne nagłówki żądań zawierające skrócony ciąg znaków UA.

Jak zrezygnować z udziału w wersji próbnej funkcji Redukcja klienta użytkownika?

W dowolnym momencie okresu próbnego możesz zrezygnować z usługi i otrzymać pełny ciąg znaków klienta użytkownika. Aby zrezygnować z udziału:

  1. W odpowiedzi HTTP prześlij nagłówek Accept-CH, który nie zawiera Sec-CH-UA-Reduced. Uwaga: Accept-CH z pustą wartością to prawidłowy sposób na osiągnięcie tego celu, jeśli Twoja witryna nie wysyła żadnych innych wskazówek klienta.
  2. Usuń nagłówek Origin-Trial z testu Redukcja klienta użytkownika ze swojej odpowiedzi HTTP.
  3. Jeśli jest ustawiony, usuń Sec-CH-UA-Reduced z nagłówka Critical-CH w odpowiedzi HTTP.

Jak długo będzie trwać okres próbny pochodzenia?

Testowanie origin interfejsu UA Reduction potrwa co najmniej 6 miesięcy, co odpowiada około 6 milestone’om Chrome. Testowanie origin pojawi się w wersji M95 i zakończy się w wersji M101. Wtedy Chrome oceni opinie z testowania origin, a potem rozpocznie wysyłanie skróconego ciągu znaków User-Agent w ramach fazowego wdrożenia zgodnie z planem wdrożenia. Jeśli witryna potrzebuje więcej czasu, może wziąć udział w kolejnych testach wersji źródłowej, które pozwolą jej uzyskać dostęp do pełnego ciągu znaków UA przez co najmniej kolejne 6 miesięcy. Gdy będzie gotowa, opublikujemy więcej informacji o testowaniu wycofania.

Jak przesłać opinię na temat okresu próbnego funkcji Redukcja klienta użytkownika?

Wszelkie problemy lub opinie możesz przesłać do repozytorium GitHub dotyczącego redukcji UA.