Testowanie origin redukcji klienta użytkownika

Redukcja klienta użytkownika ma na celu zmniejszenie liczby powierzchni używanych odcisków cyfrowych przez ograniczenie informacji w ciągu znaków User-Agent (UA) tylko do marki przeglądarki i wersji istotnej, rozróżnienia na komputery i urządzenia mobilne oraz do platformy, na której działa. Obecnie ciąg znaków UA jest udostępniany w przypadku każdego żądania HTTP i udostępniany w kodzie JavaScript dla wszystkich zasobów wczytywanych przez przeglądarkę. Zawiera on istotne informacje o przeglądarce, platformie, na której działa, i jej możliwościach. Podpowiedzi klienta User-Agent (UA-CH) mogą zawierać te same informacje co pełny ciąg znaków UA, a witryny mogą prosić tylko o dostęp do potrzebnych informacji UA.

Począwszy od Chrome 95 w wersji beta, rozpoczniemy okres próbny w przypadku redukcji klienta User-Agent, aby witryny mogły wyrazić zgodę na otrzymywanie ograniczonego ciągu tekstowego dotyczącego UA. Dzięki temu witryny będą mogły wykrywać i rozwiązywać problemy, zanim zredukowana UA stanie się domyślnym działaniem Chrome (redukcja zmian ma się rozpocząć w drugim kwartale 2022 r.). Jeśli chcesz przetestować wersję próbną Chrome 95 na 95 użytkownikach, zanim ta wersja zostanie udostępniona w stabilnej populacji, pamiętaj, aby wziąć udział w testach przed datą wprowadzenia Chrome 95 (zaplanowaliśmy ją na 19 października 2021 r.).

Poniżej znajdziesz omówienie procesu testowania origin i tego, czego możesz się spodziewać. Jak zwykle zachęcamy do przesyłania opinii i rozwiązywania wszelkich problemów dotyczących tego okresu w repozytorium GitHub redukcji UA.

Co to jest User-Agent?

Ciąg znaków User-Agent (UA) jest udostępniany w każdym żądaniu HTTP i udostępniany w skrypcie JavaScript wszystkim zasobami wczytywanym przez przeglądarkę. Obecnie zawiera on istotne informacje o przeglądarce i platformie, na której działa.

Dlaczego zmniejsza się wartość klienta użytkownika?

Redukcja klienta użytkownika to próba ograniczenia powierzchni pasywnych odcisków cyfrowych w przeglądarce Chrome, którą po raz pierwszy ogłoszono w styczniu 2020 roku. Ograniczając informacje w ciągu tekstowym UA tylko do marki przeglądarki i znaczącej wersji, rozróżnienia na komputery lub urządzenia mobilne oraz platformy, na której działa, staje się trudniejsza do identyfikacji poszczególnych użytkowników.

Co to oznacza dla programistów stron internetowych?

Witryny powinny się przygotować na ograniczenie ciągów tekstowych UA i wziąć udział w testowaniu origin (szczegóły poniżej). Zmniejszone wartości klienta użytkownika pojawią się w tych miejscach:

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

Aby otrzymywać więcej informacji o kliencie niż jest udostępniane przez zmniejszoną liczbę klientów użytkownika, witryny będą musiały przejść na nowy interfejs User-Agent Client Hints API. Więcej informacji o strategiach migracji znajdziesz w artykule Przejście na wskazówki dla klienta użytkownika.

Plany redukcji klienta użytkownika nie obejmują obecnie iOS ani komponentu WebView, dlatego platformy te nadal będą pobierać pełny ciąg znaków klienta użytkownika. Główna przyczyna jest taka, że platformy nie mają jeszcze zaimplementowanych wskazówek dla klientów dotyczących klienta użytkownika.

Jak działa ten test origin?

Ta wersja próbna origin różni się nieco od standardowego testowania origin. Standardowe testy origin mogą kontrolować tylko zachowanie w odpowiedzi (np. kontrolować dostęp do interfejsu API w jej kodzie JavaScript). Celem tego eksperymentu jest nie tylko modyfikacja ciągu znaków UA podanego w interfejsach API JavaScript, ale także zmodyfikowanie nagłówka User-Agent wysłanego w żądaniu HTTP.

Aby było to możliwe, definiujemy tymczasową wskazówkę dla klienta o nazwie Sec-CH-UA-Reduced, której obecność w żądaniu będzie wskazywać, że wartość nagłówka klienta użytkownika zawiera zmniejszony ciąg znaków UA. Wskazówka dla klienta Sec-CH-UA-Reduced (wraz ze zmniejszonym ciągiem znaków UA) będzie wysyłana tylko wtedy, gdy token próbny origin jest prawidłowy, a wskazówka klienta Sec-CH-UA-Reduced nie będzie działać po zakończeniu okresu próbnego origin. Pamiętaj, że pierwsze żądanie nawigacji nadal otrzyma niezredukowany ciąg znaków User-Agent, chyba że ustawisz Critical-CH header.

Żądania zasobów podrzędnych wysyłane do tego samego źródła będą automatycznie wysyłać ten sam ciąg znaków klienta użytkownika co żądanie najwyższego poziomu. Żądania zasobów podrzędnych wysyłane do źródeł zewnętrznych będą też wysyłać ten sam ciąg znaków klienta użytkownika co żądanie najwyższego poziomu, w tym zmniejszony ciąg znaków UA, jeśli token próbny origin jest prawidłowy, o ile zezwalają na to zasady uprawnień.

Jak wziąć udział w testowaniu origin redukcji klienta użytkownika?

  1. Aby zarejestrować się w wersji próbnej origin i uzyskać token dla swoich domen, wejdź na stronę okresu próbnego 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 uzyskany podczas rejestracji na testowanie origin.
    2. Dodaj Accept-CH: Sec-CH-UA-Reduced do nagłówka odpowiedzi HTTP.
    3. Ustawienie Accept-CH spowoduje, że ograniczony ciąg znaków klienta użytkownika będzie wysyłany tylko w kolejnych żądaniach wysyłanych do źródła. Aby ponownie wysłać pierwsze żądanie nawigacyjne ze zredukowanym ciągiem znaków klienta użytkownika, dodaj parametr Critical-CH: Sec-CH-UA-Reduced do nagłówka odpowiedzi HTTP oprócz nagłówków Accept-CH i Origin-Trial.
    4. Uwaga: jeśli nagłówki odpowiedzi zawierają prawidłowy token Origin-Trial i Accept-CH: Sec-CH-UA-Reduced, wszystkie żądania zasobów podrzędnych (np. dotyczące obrazów lub arkuszy stylów) i elementy podrzędne (np. elementy iframe) będą wysyłać zredukowany ciąg UA, nawet jeśli źródła tych żądań nie są rejestrowane w ramach testowania origin.
  3. Wczytaj witrynę w Chrome M95 (lub nowszej) i zacznij otrzymywać zredukowany ciąg znaków UA.

  4. Jeśli napotkasz problemy lub prześlesz opinię, prześlij opinię do repozytorium GitHub Redukcja UA.

  5. Na stronie https://uar-ot.glitch.me/ znajdziesz prostą prezentację wersji próbnej origin (wraz z kodem źródłowym).

Jak wziąć udział w testowaniu origin jako umieszczanie filmów innych firm?

Od wersji Chrome 96 moduły innych firm umieszczone na stronie (np. element iframe w innej witrynie) mogą uczestniczyć w testach origin bez konieczności rejestrowania witryny najwyższego poziomu.

Aby zarejestrować się jako zewnętrzna strona internetowa:

  1. Otwórz stronę Okres próbny redukcji klienta użytkownika i kliknij Zarejestruj.
  2. Podczas tworzenia tokena zaznacz pole wyboru Third-party matching.
  3. Aby otrzymać zmniejszony nagłówek User-Agent z umieszczonego przez firmę zewnętrzną nagłówka, zaktualizuj nagłówki odpowiedzi HTTP.
  4. Aby odebrać zmniejszony ciąg znaków klienta użytkownika w interfejsach API JavaScript, token próbny musi być wstrzyknięty przez JavaScript.

Oto kilka ważnych kwestii dotyczących testowania origin w elementach umieszczonych przez inne firmy: + W przypadku elementów umieszczonych przez inne firmy nie można określić parametru Critical-CH, więc pierwsza nawigacja nie wyśle zredukowanego ciągu UA, chociaż żądania zasobu podrzędnego umieszczonego przez firmę zewnętrzną będą wysłać zmniejszony ciąg UA. + Jeśli testowanie origin zostanie zweryfikowane pod kątem źródła umieszczonego elementu innej firmy, kolejne żądania wysyłane do tego samego źródła w ramach nawigacji najwyższego poziomu będą wysyłać zredukowany ciąg UA. Z tego powodu zalecamy zwiększenie udziału w testowaniu origin zarówno w przypadku żądań najwyższego poziomu, jak i żądań umieszczenia. + Jeśli klient użytkownika wyłączył pliki cookie innych firm, wersja próbna origin nie będzie działać w przypadku nagłówka User-Agent w żądaniach umieszczania treści innych firm, chociaż interfejsy JavaScript API nadal będą otrzymywać skrócony ciąg UA.

Jak mogę sprawdzić, czy wersja próbna origin działa?

Aby się upewnić, że wersja próbna origin działa, sprawdź nagłówki żądań i upewnij się, że:

  1. Nagłówek User-Agent zawiera obniżoną wersję. Zapoznaj się z tą listą przykładów z ograniczoną liczbą ciągów tekstowych UA. Można to łatwo stwierdzić, że ciąg znaków wersji podrzędnej w Chrome zawiera element 0.0.0.
  2. Nagłówek Sec-CH-UA-Reduced jest ustawiony na ?1.

Nagłówki odpowiedzi początkowej zawierające token próbny origin powinny wyglądać tak:

Nagłówki odpowiedzi początkowej zawierające token próbny origin.

Kolejne nagłówki żądań zawierające zredukowany ciąg znaków UA powinny wyglądać tak:

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

Jak przestać korzystać z testowania origin redukcji klienta użytkownika?

W dowolnym momencie okresu próbnego możesz przestać korzystać z usługi i otrzymać pełny ciąg znaków User-Agent. Aby przestać brać udział w programie:

  1. Wyślij w odpowiedzi HTTP nagłówek Accept-CH, który nie zawiera nagłówka Sec-CH-UA-Reduced. Uwaga: pole Accept-CH z pustą wartością jest prawidłowym sposobem na wykonanie tego zadania, jeśli witryna nie żąda żadnych innych wskazówek klienta.
  2. Usuń z odpowiedzi HTTP nagłówek Origin-Trial na potrzeby próbnej redukcji klienta użytkownika.
  3. Jeśli jest ustawione, usuń Sec-CH-UA-Reduced z nagłówka Critical-CH w odpowiedzi HTTP.

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

Testowanie origin UA Reduction będzie trwać przez co najmniej 6 miesięcy, co odpowiada około 6 etapom milowym dotyczącym Chrome. Testowanie origin pojawi się w wersji M95, a zakończy się do wersji M101. Wtedy Chrome oceni opinie z okresu testowania origin przed kontynuacją wysyłania zredukowanego ciągu znaków klienta użytkownika etapami zgodnie z planem wdrożenia. Jeśli witryna potrzebuje więcej czasu, może skorzystać z kolejnego okresu próbnego wycofania, co zapewni jej dostęp do pełnego ciągu znaków UA przez co najmniej kolejne 6 miesięcy. Więcej informacji na temat okresu próbnego wycofywania opublikujemy, gdy będzie on gotowy.

Jak przesłać opinię na temat testowania origin redukcji klienta użytkownika?

Jeśli napotkasz problemy lub prześlesz opinię, prześlij opinię do repozytorium GitHub Redukcja UA.