← Wróć do bloga

Czym jest fingerprint ClientRects? Przewodnik po sprawdzaniu spójności środowiska przy wielu kontach

Wniosek w skrócie: ClientRects na stronie testowej odczytuje pola layoutu elementów strony, czyli zestaw szerokości, wysokości i współrzędnych z miejscami dziesiętnymi. Gdy odczyty w dwóch środowiskach się nie zgadzają, przyczyną są zwykle renderowanie czcionek, skalowanie ekranu albo różnice systemowe. To element spójności środowiska, którego nie da się wyłączyć osobno, a rozwiązaniem jest wybór trybu w ustawieniach fingerprintingu plus test w praktyce.

„Spójność sprawdziłem aż do warstwy fingerprintingu, a odczyty ClientRects w dwóch środowiskach są różne." Albo odwrotnie: pozycja na stronie testowej jest podświetlona na żółto i nie wiadomo, czy to problem. Wspólny mianownik takich pytań: nazwa parametru jest znajoma, ale brakuje pewności, co właściwie mierzy i co zmiana pociągnie za sobą.

Ten artykuł odpowiada na cztery pytania w kolejności diagnozowania: co to za odczyt, dlaczego dwa środowiska się różnią, co mówi o spójności środowiska oraz jak to skonfigurować i zweryfikować w przeglądarce antywykrywalnej MostMate. MostMate przygotowuje dla każdego konta odizolowane środowisko przeglądarki, a ClientRects to jedna z pozycji w ustawieniach fingerprintingu.

Czym właściwie jest fingerprint ClientRects

W jednym zdaniu: fingerprint ClientRects odczytuje dokładne współrzędne pól layoutu elementów strony. Wywołanie getBoundingClientRect() zwraca szerokość, wysokość i pozycję elementu względem viewportu, a dokumentacja MDN definiuje to jako zwrócenie rozmiaru elementu i jego pozycji względem viewportu. Dla elementów inline łamanych na wiele linii służy getClientRects(), które zwraca jeden prostokąt na linię.

Kluczem jest postać liczb. Współrzędne nie są liczbami całkowitymi. To liczby zmiennoprzecinkowe z wieloma miejscami po przecinku, na przykład 147.359375. Strona nie potrzebuje żadnych uprawnień: skrypt tworzy w dokumencie ukryty element, wpisuje ustalony tekst, odczytuje prostokąt i składa sygnaturę, a całość dzieje się w ramach zwykłych obliczeń layoutu.

Osoby prowadzące wiele kont mają trzy powody, by się nim przejąć. Nie da się go wyłączyć, bo obliczenia layoutu to podstawa działania stron; jest stabilny między sesjami, bo na tym samym urządzeniu odczyty prawie się nie zmieniają; i podobnie jak czcionki czy parametry ekranu należy do deklaracji środowiska, którą systemy wykrywania nadużyć wykorzystują do kontroli krzyżowej.

Ilustracja: jak działa fingerprint ClientRects

Dlaczego odczyty w dwóch środowiskach się różnią

Szerokość tekstu wyznacza łańcuch składu. Każdy etap zostawia ślad:

  • Silnik typograficzny: Windows, macOS i Linux mają każdy swój; ta sama czcionka i te same znaki dają różne odstępy.
  • Skalowanie ekranu: wysokie rozdzielczości i systemowe skalowanie zmieniają ziarno zaokrąglania, a z nim miejsca dziesiętne.
  • Fallback czcionek: gdy wymagana czcionka nie jest zainstalowana, sięga po zapasową, a szerokość się zmienia.
  • Silnik przeglądarki i zoom strony: różne jądra łamią linie inaczej, a zoom strony wchodzi bezpośrednio do layoutu.

Różnice te są niewielkie i pojedyncza liczba nic nie mówi. W połączeniu opisują jednak, jaki system i jaki stos renderowania napędza to urządzenie. To bliscy kuzyni fingerprintu czcionek: wyliczanie czcionek pyta wprost o listę, ClientRects mierzy wynik renderowania, więc oba sygnały mogą się wzajemnie potwierdzać. Parametry rozmiaru na poziomie urządzenia i okna opisaliśmy w artykule o rozdzielczości ekranu; ClientRects to sygnał głębszy, na poziomie pojedynczych elementów.

Jaką rolę odgrywa ten odczyt w spójności środowiska

Jego największa wartość to kontrola krzyżowa: deklaracji środowiska można przeciwstawić mierzalny punkt odniesienia. Środowisko deklaruje Windows i typowy zestaw czcionek, a zmierzona szerokość tekstu zdradza styl zaokrąglania innego systemu. Dwa sygnały się rozjeżdżają. System wykrywania nie musi rozumieć przyczyny, wystarczy, że zauważy sprzeczność.

Spójność konfiguracji zasługuje na weryfikację bardziej niż rzadkość pojedynczego parametru. Gdy sprawdzasz, czy dwa środowiska mogą zostać uznane za tę samą osobę, porównuj odczyty prostokątów razem z systemem operacyjnym i listą czcionek deklarowanymi w panelu fingerprintingu; logika samoaudytu polega na zestrojeniu deklaracji z pomiarem.

Jest jeszcze jedno często pomijane zastosowanie: wykrywanie skalowania. Sposób zaokrąglania prostokątów pozwala wywnioskować aktualny zoom strony i systemowe skalowanie, a te informacje znów dają się zestawić z deklarowanymi parametrami ekranu. Gdy środowiska wyraźnie różnią się zachowaniem zoomu, różnice odczytów są normalne; najpierw ustal stan skalowania, potem wyciągaj wnioski.

Jak to skonfigurować w MostMate

W formularzu ustawień fingerprintingu MostMate ClientRects zajmuje osobną pozycję, obok Canvas, AudioContext, SpeechVoices i obrazu WebGL. Są tylko dwa tryby: tryb Real zwraca prawdziwy skład lokalnej maszyny, a tryb Noise to tryb szumu.

Tryb dobierz do scenariusza. Real wybierz, gdy spełnione są oba warunki: konfiguracja tego komputera odpowiada popularnemu zestawowi w grupie docelowej, na przykład typowy Windows z domyślnymi czcionkami; a strona biznesowa wymaga dużej precyzji składu i nie może tolerować zmian wartości layoutu. Koszt trybu Real to pełne odsłonięcie prawdziwych cech renderowania maszyny; jeśli komputer ma dużo niszowych czcionek, rozpoznawalność rośnie.

Gdy wiele środowisk dzieli ten sam komputer, wybierz Noise. Odczyty środowisk przestają wskazywać na jedną maszynę i to jest główny scenariusz jego użycia. Kosztem jest przyjęcie jednego ograniczenia. Między wartościami prostokątów istnieją zależności arytmetyczne. Współrzędne całego pola muszą zgadzać się z prostokątami tekstu wewnętrznego, a szerokości tych samych ciągów muszą pozostawać w proporcjach. Szum dotyczący tylko części odczytów łamie te zależności i w efekcie tworzy jeszcze bardziej rzucającą się sprzeczność. Dlatego po wyborze trybu konieczny jest test, a nie założenie, że domyślna konfiguracja wystarczy.

Po przełączeniu na tryb Noise pozycja ClientRects w panelu podglądu fingerprintingu przyjmuje wartość z sześcioznakowym kodem. Kod jest tylko identyfikatorem konfiguracji szumu; prawdziwie wystawiony hash zobaczysz dopiero po uruchomieniu środowiska i odwiedzeniu strony testowej.

Schemat: miejsce parametru ClientRects w ustawieniach fingerprintingu MostMate

Jak zweryfikować konfigurację

Weryfikacja to dwa kroki: najpierw zmiana, potem spójność.

Krok 1: porównaj odczyty dwóch środowisk. Utwórz dwa środowiska, jedno z trybem Real, drugie z Noise, i otwórz w nich stronę testową Client Rects na BrowserLeaks. Na tej samej maszynie wartości prostokątów środowiska Real powinny być identyczne. Środowisko Noise powinno różnić się od Real, a dwa środowiska Noise powinny różnić się między sobą. Przy notowaniu patrz zwłaszcza na część od trzeciego miejsca po przecinku; różnice zwykle zaczynają się właśnie tam. Zapisz odczyty każdego środowiska jako jego punkt odniesienia.

Krok 2: sprawdź spójność. To za mało, wyniki muszą być spójne:

  • Powtórz test w innej sesji: wartości tego samego środowiska powinny być stabilne, a odczyty skaczące to w sobie sygnał ostrzegawczy.
  • Zestaw wyniki z systemem operacyjnym i listą czcionek z panelu fingerprintingu: styl renderowania musi pasować, jeden sygnał nie może mówić Windows, a drugi macOS.
  • Przeglądaj kilka zwykłych stron i sprawdź, czy skład nie ma widocznych usterek, zwłaszcza w formularzach, przyciskach i łamanym tekście.

Wszystko OK? Jeśli nie, sprawdź tryb w ustawieniach fingerprintingu.

Częste pytania

Czy czerwona flaga przy ClientRects na stronie testowej zawsze oznacza problem ze środowiskiem?

Niekoniecznie. Sprawdź najpierw dwie rzeczy: czy deklarowany system i czcionki pasują do stylu odczytów oraz czy stan skalowania zgadza się z parametrami ekranu. Gdy oba są w porządku, pojedyncza czerwona flaga nie musi oznaczać problemu; dopiero wyraźna sprzeczność między stylem odczytów a deklaracją wymaga zajrzenia do ustawień fingerprintingu.

Czy zmiana zoomu przeglądarki zmienia fingerprint ClientRects?

Tak. Zoom wchodzi bezpośrednio do layoutu, a zaokrąglanie prostokątów zmienia się wraz z nim. Zoom to jednak normalne zachowanie każdego użytkownika. Ryzyko leży gdzie indziej: gdy stan skalowania nie zgadza się z deklarowanymi parametrami ekranu. Część stabilna między sesjami nadal zależy od stosu renderowania.

Czy ClientRects można wyłączyć?

Nie. Obliczenia layoutu to podstawa działania stron; zależą od nich skład, pozycjonowanie okienek i animacje. Przeglądarki nie oferują wyłącznika. Branża ogranicza precyzję zamiast wyłączać pomiar; Tor Browser na przykład zaokrągla mierzone wartości, by zmniejszyć rozróżnialność.

Dlaczego przeglądarki headless łatwo zdradzają się na wymiarach elementów?

Domyślny viewport środowisk headless jest bardzo przewidywalny, a stos renderowania tekstu jednorodny. Zmierzone prostokąty często nie pasują do urządzenia, które sugeruje deklarowany UA. Systemy wykrywania zestawiają rect z pozostałymi deklarowanymi parametrami, więc takie środowiska łatwo wychwycić.

Podsumowanie

Rola ClientRects w kontroli spójności jest konkretna: zestawiasz deklarację środowiska z rzeczywistym pomiarem składu, a sprzeczność jest sygnałem. Przy czerwonej fladze na stronie testowej najpierw porównaj parametry deklaracji i stan skalowania, potem potwierdź lukę spójności i dopiero wtedy zajrzyj do ustawień fingerprintingu.

MostMate zbiera ClientRects razem z pozostałymi parametrami renderowania w jednym formularzu ustawień fingerprintingu, a tryby Real i Noise decydują o źródle odczytów. Pełny przegląd możliwości produktu znajdziesz na stronie MostMate. Po utworzeniu środowisk zapisz bazowe odczyty w układzie dwóch środowisk — to praktyczniejsze niż jakakolwiek sztuczka konfiguracyjna. Możesz też pobrać MostMate i samodzielnie zmierzyć różnicę między Real a Noise na dwóch środowiskach.

MOSTMATE

Bezpieczne zarządzanie wieloma kontami, bez komplikacji

Zacznij od pierwszego konta i z MostMate buduj bezpieczniejsze, inteligentniejsze i wydajniejsze operacje obejmujące wiele kont.

  • Niezależne profile. Spójne tożsamości.
  • Automatyzacja AI · Kondycja kont · Praca zespołowa
Pobierz MostMate