Odcisk cyfrowy oznacza próbę identyfikacji użytkownika, gdy wraca on do witryny, lub identyfikowanie tego samego użytkownika w różnych witrynach. Twoja konfiguracja może różnić się od konfiguracji u innego użytkownika. Możesz na przykład używać urządzenia innego typu inna przeglądarka, mają inny rozmiar ekranu i zainstalowane różne czcionki. Jeśli używam czcionki „Dejavu Sans” jeśli nie masz jej zainstalowanej, dowolna witryna może ją rozpoznać, sprawdzając czcionkę. Jak to zrobić pobieranie odcisków cyfrowych tworzysz zbiór tych punktów danych, a każdy z nich daje więcej sposobów rozróżniania użytkowników.
Bardziej formalna definicja może wyglądać tak: pobieranie odcisków cyfrowych polega na wykorzystaniu oczywistych i nieoczywistych danych długoterminowych konfiguracji użytkownika, aby spróbować odróżnić go od jak największej liczby innych użytkowników.
Dlaczego pobieranie odcisków cyfrowych szkodzi prywatności użytkowników
W pewnych skrajnych przypadkach, np. w wykrywaniu oszustw, ważne jest pobranie odcisków cyfrowych użytkownika. Odciski palców mogą jednak używane do śledzenia użytkowników w różnych witrynach i często odbywa się bez zgody użytkownika, a w niektórych przypadkach na podstawie zgody użytkownika. o nieprawidłowej zgody, która nie zawiera odpowiednich informacji dla użytkownika. Wtedy użytkownicy często oswoją się z tym, raczej zdradzona.
Korzystanie z odcisków cyfrowych oznacza znalezienie sposobów na dyskretne odróżnienie poszczególnych użytkowników. Funkcja odcisku cyfrowego może pomóc w rozpoznaniu, to nadal ten sam użytkownik w tej samej witrynie lub rozpoznanie tego samego użytkownika w dwóch różnych profilach przeglądarki naraz. Oznacza to, że odcisków cyfrowych można używać do śledzenia użytkowników w różnych witrynach. Deterministyczne i jawne metody śledzenia, np. przechowywania pliku cookie z unikalnym identyfikatorem dla użytkownika, mogą być do pewnego stopnia obserwowane przez użytkowników i kontrolowane (w poprzednim module omówiliśmy niektóre z nich). Jednak trudniej jest uniknąć ponieważ jest ukryta. polega na niezmieniających się cechach i najprawdopodobniej odbywa się niewidocznie. Dlatego właśnie nosi nazwę „odcisk cyfrowy”. Zmiana odcisku palca jest najbardziej trudna – zarówno w przypadku cyfrowego, jak i odcisku palca palców.
Dostawcy przeglądarek wiedzą, że użytkownicy nie lubią być śledzeni, i stale wdrażają funkcje ograniczające pobieranie odcisków cyfrowych (niektóre z nich omawialiśmy już w poprzednim module). Poniżej analizujemy, jak te funkcje mogą wpłynąć na Twoją firmę oraz o tym, jak nadal robić to, co chcesz, jednocześnie chroniąc prywatność. Chodzi o to, jak ochrona przeglądarki przeciwko będzie miało wpływ na to, co i jak robisz, a nie na to, jak powstrzyma ono odciski palców.
W praktyce większość deweloperów i większość firm nie musi rejestrować odcisków cyfrowych użytkowników. Jeśli Twoja aplikacja wymaga od użytkowników logowania się, użytkownicy identyfikują się z Tobą, za ich zgodą, i w sposób, który mogą jednostronnie zrezygnować w dowolnym momencie. Jest to metoda oparta na ochronie prywatności, która pozwala sprawdzić, którzy użytkownicy są zalogowani. Aplikacja może nie nie wymagają od użytkowników logowania się, co jeszcze lepiej chroni prywatności (a następnie zbierasz tylko te, których potrzebujesz).
Tak
Sprawdź firmy zewnętrzne pod kątem korzystania z odcisków cyfrowych. W ramach modułu Osoby trzecie może już mieć listę usług innych firm, które uwzględniasz, oraz ich żądań internetowych. Może to być możliwe w celu sprawdzenia, które dane są przekazywane z powrotem do źródła. Często jest to trudne, pobieranie odcisków cyfrowych jest z natury ukrytym procesem, który obejmuje żądanie danych, które nie podlegają zatwierdzeniu przez użytkownika.
Warto też zapoznać się z polityką prywatności usług innych firm i zależnościami, aby poszukać odcisków cyfrowych w użyciu. Czasami jest nazywane „dopasowaniem prawdopodobnym” lub stanowi część zestawu technik dopasowywania prawdopodobnego. w przeciwieństwie do „dopasowania deterministycznego”.
Jak działa pobieranie odcisku palca
Często Twoja osobista kombinacja wszystkich tych atrybutów jest unikalna dla Ciebie lub co najmniej niewielkiej grupie podobnych osób; może służyć do ukrytego śledzenia Ciebie.
Poza tym: pasywne i aktywne odciski cyfrowe
Istnieje przydatne rozróżnienie między pasywnymi a aktywnymi technikami odcisków cyfrowych. Pasywny odcisk cyfrowy to metoda, która wykorzystuje informacje przekazywane domyślnie witrynie; aktywna technika odcisków cyfrowych jest które wyraźnie pytają przeglądarkę w celu uzyskania dodatkowych informacji. Rozróżnienie to jest tak ważne, że przeglądarki mogą próbować wykryć i przechwycić aktywne techniki lub zminimalizować ich skutki. Interfejsy API mogą podlegać ograniczeniom lub być blokowane za pomocą okna dialogowego prosić użytkownika o zgodę (a tym samym powiadamiać użytkownika o tym, że są wykorzystywane, lub umożliwiać mu odmowę ). Technika pasywna to metoda, która wykorzystuje dane, które zostały już udostępnione witrynie, często dlatego, że w przeszłości w czasach dojrzałości informatycznej Superhighway, że tę informację przekazywano wszystkim witrynom. Ciąg znaków klienta użytkownika to tego przykładu – przyjrzymy się temu dokładniej. Uznano ją za przydatny w dostarczaniu znacznej ilości informacje o przeglądarce, wersji i systemie operacyjnym użytkownika, tak by strona mogła prezentować inne na tej podstawie. Zwiększa to jednak ilość udostępnianych informacji wyróżniających, co pomaga odróżnić jednego użytkownika od drugiego; przez co takie informacje są coraz niedostępne lub przynajmniej w taki sposób, aby nie odróżniał się od innych. Jeśli Twoja działalność bazuje na tych informacjach – na przykład jeśli stosujesz różne w zależności od klienta użytkownika, kod ten może ulec uszkodzeniu, gdy przeglądarki coraz częściej zawieszają lub zatrzymują dostarczanie informacji. W tym przypadku najlepszym sposobem obrony jest testowanie ( zobacz później).
Poza tym pomiar odcisków cyfrowych
Miara techniczna ilości informacji dostarczanych przez każdy z tych punktów danych jest nazywana entropią i mierzona w bitach. Funkcja, która może przyjmować wiele różnych wartości (np. lista zainstalowanych czcionek), może przyczynić się do przesłania dużej liczby informacji. w sumie, co oznacza, że coś niewystarczająco rozróżniającego (np. informacje o używanym systemie operacyjnym) może tylko dodać kilka. Protokół HTTP Almanac opisuje, w jaki sposób istniejące odciski cyfrowe automatyzują ten proces łączenia odpowiedzi z wielu różnych interfejsów API w „hash”, który może identyfikować tylko niewielką grupę użytkowników, może nawet jedną. Maud Nalpas szczegółowo omawia tę kwestię: tym filmie w YouTube. listę znajomych z ich ulubioną muzyką, ulubionymi potrawami i językami, którymi się posługują... ale z ich imionami i nazwiskami. usunięto. Istnieje duże prawdopodobieństwo, że każda osoba na liście znajomych będzie jednoznacznie identyfikowała ją wśród Twoich znajomych lub zmniejszyć listę do kilku osób. Oto jak działa pobieranie linii papilarnych; lista Twoich ulubionych rzeczy staje się haszem. Na i identyfikowanie użytkownika jako tej samej osoby w 2 różnych niepołączonych witrynach staje się łatwiejsze. śledzenia: w celu obejścia dążenia użytkownika do zachowania prywatności.
Co przeglądarki zapobiegają pobieraniu odcisków cyfrowych?
Co ważne, dostawcy przeglądarek bardzo wiedzą o tym, że istnieje wiele różnych sposobów obsługi witryny (lub firm zewnętrznych uwzględnionych w witrynie). do obliczania odcisku palca odróżniającego użytkownika lub dla różnych informacji, które przyczyniają się do zwiększenia unikatowości tego odcisku palca. Niektóre z nich są jednoznaczne i celowe, np. ciąg znaków klienta użytkownika przeglądarki, który często identyfikuje przeglądarkę, system operacyjny i używaną wersję (i w ten sposób przyczynia się do odróżnienia użytkownika ode mnie, jeśli Używam różnych przeglądarek). Niektóre sposoby nie zostały specjalnie stworzone w taki sposób, by można je było odcisnąć, ale w rzeczywistości tak np. z listą czcionek lub urządzeń audio i wideo dostępnych dla przeglądarki. (Przeglądarka nie musi używać dla tych urządzeń, poszukaj ich nazw). Niektóre z nich zostały też uznane za osoby uczestniczące w badaniu odcisku palca po jego wydaniu, np. renderowanie precyzyjnego piksela z wygładzania czcionek w elemencie canvas. Jest ich znacznie więcej, a każdy sposób, w jaki Twoja przeglądarka różni się od mojej, dodaje entropię i potencjalnie przyczynia się To sposób na odróżnienie mnie od niej i stworzenie jak najbardziej uniwersalnej identyfikacji konkretnej osoby w różnych witrynach. Strona https://amiunique.org ma długą (ale zdecydowanie niekompletną) listę źródeł potencjalnych kanałów, które mogą przyczyniać się do powstawania odcisków palców. funkcji, a lista wciąż się powiększa (ponieważ istnieje duże zainteresowanie finansowymi możliwościami odcisków cyfrowych użytkownikom których nie chcesz mieć lub nie spodziewaj się tego).
Brak obsługi niektórych zaawansowanych interfejsów API
Dostawcy przeglądarek na wszystkie te sposoby polegają na opracowaniu sposobów ilość entropii dostępnej przez te interfejsy API. Najbardziej restrykcyjną opcją jest niewłaściwe ich wdrożenie. Zrobiły to w niektórych popularnych przeglądarkach na potrzeby różnych interfejsów API sprzętu i urządzeń (takich jak NFC czy dostęp przez Bluetooth aplikacji internetowych po stronie klienta), w których podano kwestie związane z odciskami cyfrowymi i prywatnością jako powody, dla których nie zostały wdrożone. Oznacza to, może mieć wpływ na Twoje aplikacje i usługi: nie można używać interfejsu API w przeglądarce, która go nie obsługuje i może ograniczają lub całkowicie odcinają niektóre podejścia do sprzętu.
Brama uprawnień użytkownika
Drugim sposobem stosowanym przez dostawców przeglądarek jest zapobieganie dostępowi do interfejsów API lub danych bez jakiejkolwiek wyraźnej zgody użytkownika. Takie podejście jest też często stosowane ze względów bezpieczeństwa – strona internetowa nie powinna mieć możliwości robienia zdjęć kamerą internetową. bez Twojej zgody! Jednak w tym przypadku prywatność i bezpieczeństwo mają podobne interesy. Określanie lokalizacji użytkownika naruszenie prywatności, ale też przyczynia się do niepowtarzalności odcisku palca. Wymaga uprawnień możliwość zobaczenia danych geolokalizacyjnych nie zmniejsza entropii dodatkowej, którą lokalizacja zwiększa niepowtarzalność odcisku palca, eliminuje zasadniczo wykorzystywanie geolokalizacji do pobierania odcisków cyfrowych, ponieważ nie jest ona już wykonywana w sposób niewidoczny. Głównym celem pobieranie odcisków cyfrowych to ukradkowe odróżnianie użytkowników od siebie. Jeśli przygotujesz się na to, że użytkownik jeśli chcesz je zidentyfikować, nie potrzebujesz metod odcisków cyfrowych: poproś użytkownika o utworzenie konta i zalogowanie się z nim.
Dodawanie nieprzewidywalności
Trzecim podejściem stosowanym w niektórych przypadkach jest
dostosowanie dostawców przeglądarek. odpowiedzi z interfejsów API, aby były mniej szczegółowe
i przez to mniej identyfikowalna. Zostało to opisane w ramach mechanizmu reakcji losowej w module danych.
które możesz stosować przy gromadzeniu danych o użytkownikach, aby uniknąć nieumyślnego zbierania danych umożliwiających identyfikację. Dostawcy przeglądarek
może zastosować podobne podejście do danych interfejsu API udostępnianych również aplikacjom internetowym i innym firmom. Na przykład:
interfejsy API z bardzo dokładnymi czasami używane do pomiaru wydajności strony
od window.performance.now()
. Przeglądarka zna te wartości
dokładności do mikrosekund, ale zwracane wartości są celowo zmniejszane z dokładnością przez zaokrąglanie do najbliższych 20 mikrosekund
aby uniknąć ich użycia w odciskach cyfrowych (a także w celu zapewnienia bezpieczeństwa w celu uniknięcia ataków czasowych. Celem jest
w celu zapewnienia przydatności interfejsów API, ale aby odpowiedzi były mniej identyfikowane: w zasadzie aby zapewnić „odporność stabilną”. tworząc
Twoje urządzenie nie jest niczym dziwne, lecz przypomina urządzenie innej osoby. Safari przedstawia uproszczoną wersję konfiguracji systemu
właśnie z tego powodu.
Egzekwowanie budżetu na potrzeby prywatności
Budżet na potrzeby prywatności to propozycja, która sugeruje, że przeglądarki szacują informacje ujawniane przez każdą platformę do pobierania odcisków cyfrowych. Nie została jeszcze zaimplementowana w przeglądarkach. Celem jest udostępnienie zaawansowanych interfejsów API przy jednoczesnej ochronie prywatności użytkowników. Więcej informacji o ofercie budżetu dotyczącej prywatności
Korzystaj z obszernego środowiska testowego
Wszystkie te czynniki wpłyną na sposób tworzenia aplikacji i usług. Odpowiedzi i podejścia są tu szczególnie w różnych przeglądarkach i na różnych platformach. Oznacza to, że testowanie pracy w różnych środowiskach jest krytyczne. Jest to oczywiście ważne, ale rozsądnie można przyjąć, że renderowanie HTML i CSS będzie stałe dla danego silnika renderowania, niezależnie od używanej przeglądarki i platformy (dlatego testowanie tylko na jednej z nich może być kuszące. (np. w przeglądarce obsługującej Blink). Nie dotyczy to konkretnie interfejsu API, ponieważ przeglądarki, które mają taki sam mechanizm renderowania może znacznie się różnić pod względem twardości powierzchni interfejsu API w odciskach cyfrowych.
Tak
- Sprawdź swoje statystyki i listę odbiorców, aby wybrać przeglądarki, które należy traktować priorytetowo podczas testowania.
- Dobrymi zestawami przeglądarek są: Firefox, Chrome, Edge, Safari na komputerze, Chrome oraz Samsung Internet na Androidzie. oraz Safari na iOS. Dzięki temu przetestujesz swoje działanie w trzech głównych silnikach renderowania (Gecko w Firefoksie, różnych rozwidleniu Blink) w przeglądarkach Chrome, Edge i Samsung Internet oraz Webkit w Safari) oraz na platformach mobilnych i komputerowych.
- Jeśli Twoja witryna może być używana również na mniej popularnych urządzeniach, takich jak tablety, zegarki smartwatche i konsole do gier, zrób to również na tej platformie. Niektóre platformy sprzętowe mogą być w tyle w stosunku do aktualizacji przeglądarek na urządzeniach mobilnych i komputerach, co oznacza, że niektóre interfejsy API mogą być niezaimplementowane lub niedostępny w przeglądarkach na tych platformach.
- Przeprowadź test w co najmniej 1 przeglądarce, której głównym motywem jest prywatność użytkownika. Uwzględnij wersje przedpremierowe i testowe z najpopularniejszych przeglądarek, do których masz dostęp i do których masz dostęp: wersję przedpremierową technologii Safari, Chrome Canary, wersja beta przeglądarki Firefox. Dają one największe szanse na rozpoznanie awarii interfejsu API i zmian, które wpływają na działanie witryn, zanim te zmiany wpłyną użytkowników. Podobnie jak w przypadku użytkowników, w kontekście dostępnych statystyk. Jeśli użytkownicy korzystają z dużej liczby starszych telefonów z Androidem, więc uwzględnij je w testach. Większość osób nie ma do szybkiego sprzętu i najnowszych wersji przez zespół programistów.
- Testuj z użyciem czystego profilu i trybu incognito lub przeglądania prywatnego. jest prawdopodobne, że udzieliłeś już wcześniej wymagane uprawnienia wymagane w profilu osobistym. Sprawdź, co się stanie, jeśli odmówisz przyznania witrynie uprawnienia w przypadku jakiegokolwiek pytania.
- Przetestuj strony w przeglądarce Firefoks z funkcją ochrony przed odciskami cyfrowymi. i trybu uzyskiwania zgody. Spowoduje to wyświetlenie okien z uprawnieniami, jeśli strona próbuje pobrać odcisk cyfrowy, a w przypadku niektórych interfejsów API zwraca rozmyte dane. Dzięki temu możesz się dowiedzieć, czy firmy zewnętrzne uwzględnione w Twojej usłudze używają danych umożliwiających odcisk cyfrowy lub czy Twoja usługa jest zależna w tej kwestii. Zastanów się, czy celowe rozmazanie nie utrudnia Ci tego, czego potrzebujesz. Pomyśl o tworzeniu odpowiednich poprawek, aby uzyskać te dane z innego źródła, zrezygnować z niego lub wykorzystywać mniej szczegółowe dane.
- Jak wspomnieliśmy w module dla firm zewnętrznych, ważne jest też,
i sprawdzać, czy korzystają z technik odcisków cyfrowych. Pasywne odciski palców są trudne do wykrycia
nie jest możliwe, jeśli firma zewnętrzna robi to na swoim serwerze). Jednak tryb odcisków cyfrowych może wskazać niektóre techniki odcisku cyfrowego,
i szukanie użycia navigator.userAgent lub nieoczekiwanego tworzenia obiektów
<canvas>
również może ujawnić niektóre podejścia. które wymagają dokładniejszej analizy. Warto także rozważyć użycie terminu „dopasowanie prawdopodobne”. w marketingu lub materiały techniczne opisujące osobę trzecią; może to wskazywać na użycie technik odcisku cyfrowego.
Narzędzia do testowania w różnych przeglądarkach
Testowanie kodu pod kątem ochrony prywatności jest trudne do zautomatyzowania. Czynności, które należy wziąć pod uwagę podczas ręcznego testowania, zostały opisane wcześniej. Co się stanie, gdy odmówisz przyznania witrynie uprawnień w przypadku jakiegokolwiek interfejsu API, z którego próbuje ona uzyskać dostęp, i w jaki sposób zostanie to zaprezentowane użytkownikowi? Test automatyczny nie może określić, czy witryna działa w celu zapewnienia użytkownikowi zaufania do niej, czy też nie, czy nie, czy nie, czy nie, czy nie, czy nie, czy nie, czy odwrotnie. lub uważasz, że coś jest ukryte.
Jednak po skontrolowaniu witryny można przeprowadzić testy interfejsów API w celu potwierdzenia, że w nowszych wersjach przeglądarek (lub nadchodząca „beta” i „podgląd” wersji) mogą być zautomatyzowane i w większości powinny być częścią Twojego zestawu testów. Coś należy rozważyć w przypadku narzędzi do automatycznego testowania, że większość przeglądarek zezwala na pewien poziom kontroli nad dostępnością interfejsów API i funkcji. W Chrome służą do tego przełączniki wiersza poleceń, (tak jak Firefox) i mieć dostęp do nich w narzędziu do testowania, pozwala na przeprowadzanie określonych testów przy wyłączonych lub włączonych interfejsach API. (Zobacz na przykład witrynę Cypress wtyczka do uruchamiania przeglądarki parametrulaunch.args dla nd puppeteer w celu dodania flag przeglądarki podczas uruchamiania).
Korzystaj tylko z przybliżonych informacji w ciągu znaków klienta użytkownika
Inny przykład: od samego początku przeglądarki wysyłały opis przy każdym żądaniu w Nagłówek HTTP klienta użytkownika. Już od niemal tak długiego czasu użytkownicy namawiają programistów stron internetowych, aby nie używali nagłówka klienta użytkownika wyświetlania różnych treści w różnych przeglądarkach, a przez cały ten czas twórcy stron internetowych i tak robili to, przy czym w niektórych (ale nie we wszystkich) przypadkach. Przeglądarki nie chcą, by witryny były dla nich optymalizowane, skutkuje to tym, że każda przeglądarka podszywa się pod każdą z innych przeglądarek, a ciąg znaków klienta użytkownika wygląda mniej więcej tak:
Mozilla/5.0 (Linux; Android 6.0.1; SGP771 Build/32.2.A.0.253; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/52.0.2743.98 Safari/537.36
.
Twórcy twierdzą, że jest to między innymi Mozilla/5.0, przeglądarka, która została wydana w tym samym czasie, gdy pierwsi astronauci poleciły na pokład Międzynarodowej Stacji Kosmicznej ponad dwie dekady temu. Ciąg znaków klienta użytkownika jest bogatym źródłem entropii wykrywania odcisków palców, oczywiście, aby zminimalizować ryzyko odcisków cyfrowych, producenci przeglądarek zablokowali już nagłówek klienta użytkownika lub pracują w tej chwili w tym kierunku. To kolejny przykład zmiany danych dostarczanych przez interfejs API bez konieczności jego całkowitego usunięcia. Wysłanie pustego nagłówka klienta użytkownika zaburzyłoby niezliczone strony internetowe, które zakładają, że taki nagłówek istnieje. Ogólnie rzecz biorąc, polega na usunięciu z niej części szczegółów, a potem zachowanie jej w większości niezmienionej. (Widać to w Safari, Chrome, i Firefox). Ochrona przed odcisk cyfrowy oznacza, że nie można już oczekiwać, że nagłówek klienta użytkownika jest dokładny, a jeśli ważne jest znalezienie alternatywnych źródeł danych.
Dla jasności – dane w kliencie użytkownika nie znikną całkowicie, ale są dostępne na mniejszej szczegółowości lub są czasami jest niedokładny, ponieważ może zostać zgłoszony starszy, ale niezmieniony numer. Na przykład reklamy Firefox, Safari i Chrome ograniczają się do zgłoszonej wersji systemu macOS do 10 (zobacz Aktualizacja dotycząca zmniejszania ciągu znaków klienta użytkownika ). Szczegółowe informacje o tym, jak Chrome zamierza ograniczyć ilość danych w ciągu znaków klienta użytkownika, znajdziesz na stronie User-Agent Reduction. ale podsumowując, można oczekiwać, że raportowany numer wersji przeglądarki będzie zawierał tylko wersję główną (tak więc numer wersji będzie wyglądać tak jak 123.0.0.0, nawet jeśli przeglądarka to 123.10.45.108), a wersja systemu operacyjnego nie będzie szczegółowo zablokować jedną z niewielkiej liczby możliwości, które się nie zmieniają. Wymyślona wersja Chrome 123.45.67.89 działająca na „Windows 20” raportuje numer wersji w taki sposób:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/123.0.0.0 Safari/537.36
Podstawowe informacje, których potrzebujesz (wersja przeglądarki), są nadal dostępne. To Chrome 123 w systemie Windows. Jednak spółka zależna informacje (architektura układu, która wersja systemu Windows, która wersja Safari imituje, wersja podrzędna przeglądarki). nie będą już dostępne po okresie blokady.
Porównaj go z „aktualnym” Klient użytkownika Chrome na innej platformie:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36
,
i można zauważyć, że różnią się tylko numer wersji Chrome (104) i identyfikator platformy.
Podobnie ciąg znaków klienta użytkownika w Safari zawiera numer platformy i wersji Safari oraz wersję systemu operacyjnego dla iOS. Ale wszystko inne jest zamrożone. Fałszywa wersja przeglądarki Safari w wersji 1234.5.67 z zainstalowanym systemem macOS 20 może dać klientowi użytkownika postać:
Mozilla/5.0 (Macintosh; **Intel Mac OS X 10_20_0**) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.1 Safari/605.1.15
,
W przypadku iOS 20 może to być:
Mozilla/5.0 (iPhone; CPU **iPhone OS 20_0** like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/**20.0 Mobile/15E148 Safari/605.1.15**
.
Przypominamy, że dostępne są podstawowe informacje (m.in. Safari w wersji na iOS lub macOS). Natomiast w Safari na iOS nadal jest dostępny numer wersji iOS. ale wiele dodatkowych informacji, które były dostępne w przeszłości, zostało zamrożonych. Co ważne, obejmuje to Safari. Numer wersji, który nie jest zawsze dostępny.
Zmiany w zgłoszonym kliencie użytkownika były gorąco dyskutowane. podsumowania: https://github.com/WICG/ua-client-hints#use-cases niektóre argumenty i przyczyny tej zmiany, a Rowan Merewood zademonstruje prezentację kilka strategii dotyczących rezygnacji z używania klienta użytkownika w celu wyróżnienia się w kontekście propozycji dotyczącej wskazówek dla klienta w UA, która została omówiona w dalszej części tego artykułu.
Rozmycie
Fuzzing to termin związany z bezpieczeństwem, w którym interfejsy API są wywoływane z nieoczekiwanymi wartościami w nadziei, że będą one obsługiwać
źle wpływają na bezpieczeństwo. Programiści stron internetowych powinni znać się na atakach typu cross-site scripting (XSS),
Polega ono na dodaniu do strony złośliwego skryptu, często dlatego, że strona nie zwraca prawidłowo kodu HTML wstrzykiwanego kodu HTML (aby użytkownik mógł ją wyszukać,
z tekstem <script>
). Deweloperzy backendu będą wiedzieć o wstrzykiwaniu SQL,
gdzie zapytania do bazy danych, które nie weryfikują poprawnie danych wejściowych użytkownika, narażają problemy z bezpieczeństwem (co wyraźnie zostało pokazane w xkcd przy użyciu
małych stolików Bobby). Rozmycie, czyli testowanie rozmycia, jest bardziej poprawne
używane do zautomatyzowanych prób dostarczenia wielu różnych nieprawidłowych lub nieoczekiwanych danych wejściowych do interfejsu API oraz do sprawdzania wyników pod kątem wycieków zabezpieczeń.
lub innej niewłaściwej obsługi. To tylko przykłady celowego podawania niedokładnych informacji. Tu jednak kończymy
z wyprzedzeniem przez przeglądarki (przez celowe ustawienie klienta użytkownika jako nieprawidłowego), aby zachęcić deweloperów, żeby przestali polegać na tych danych.
Tak
- Sprawdź bazę kodu pod kątem zaufania do ciągu klienta użytkownika (wyszukiwanie hasła
navigator.userAgent
prawdopodobnie znajdzie większość wystąpień w kodzie po stronie klienta, a kod backendu prawdopodobnie będzie szukałUser-Agent
jako nagłówka), łącznie z zależności. - Jeśli w swoim kodzie zauważysz przypadki użycia, dowiedz się, do czego służy ten kod, i znajdź inny sposób na to rozróżnienie. (albo znajdź zależność zastępczą lub skontaktuj się z zależnością nadrzędną, zgłaszając problemy lub sprawdzając dostępność aktualizacji). Czasami Aby obejść błędy, konieczne jest zróżnicowanie przeglądarki, ale gdy zostanie zablokowany, klient użytkownika nie będzie już do tego służył.
- Twoje bezpieczeństwo może być bezpieczne. Jeśli wykorzystujecie tylko podstawowe wartości marki, wersji głównej i platformy, prawie na pewno będą one być poprawne i poprawne w ciągu znaków klienta użytkownika.
- W MDN znajdziesz opis dobrych sposobów na uniknięcie polegania na ciągu znaków klienta użytkownika („sniffing” (wykrywanie) przeglądarki), których głównym celem jest wykrywanie cech.
- Jeśli w jakiś sposób polegasz na ciągu znaków klienta użytkownika (nawet gdy używasz tych kilku podstawowych wartości, które pozostają przydatne), warto do przetestowania nowych klientów użytkownika. Można przeprowadzić testy w najnowszych przeglądarkach, za pomocą kompilacji w wersji beta i przedpremierowej technologii, ale można też ustawić niestandardowy ciąg znaków klienta użytkownika dla i testowania. Możesz zastąpić ciąg znaków klienta użytkownika w przeglądarkach Chrome, Edge, Firefox oraz Safari, podczas programowania lokalnego, aby sprawdzić, jak kod radzi sobie z różnymi wartościami klienta użytkownika, które możesz otrzymywać od użytkowników.
Wskazówki dla klienta
Jedną z głównych zasad jest udostępnianie tych informacji za pomocą wskazówek dotyczących klienta użytkownika,
ale nie jest on obsługiwany we wszystkich przeglądarkach. Obsługiwane przeglądarki przekazują 3 nagłówki: Sec-CH-UA
, co daje
marka i numer wersji przeglądarki; Sec-CH-UA-Mobile
, który wskazuje, czy żądanie pochodzi z urządzenia mobilnego. i Sec-CH-UA-Platform
,
który jest nazwą systemu operacyjnego. (Analiza nagłówków nie jest prosta, niż się wydaje, ponieważ są
uporządkowane nagłówki zamiast prostych ciągów znaków,
Jest to wymuszane przez przeglądarki, które wysyłają „trafne” wartości, które nie będą poprawnie odczytywane, jeśli nie zostaną poprawnie przeanalizowane. To znaczy,
Jak już wspomnieliśmy wcześniej, mamy przykład „testów przybliżonych”, które są przeprowadzane z wyprzedzeniem przez przeglądarkę. Deweloper korzystający z tych danych musi obsługiwać
ponieważ dane są zaprojektowane w taki sposób, że nieprawidłowa lub leniwa analiza może dawać złe wyniki, np. przy wyświetlaniu marek, które tego nie robią.
istniejące lub ciągi znaków, które nie zamykają się poprawnie). Na szczęście te dane są również udostępniane przez przeglądarkę do kodu JavaScript bezpośrednio jako
navigator.userAgentData
, który w obsługiwanej przeglądarce może wyglądać mniej więcej tak:
{
"brands": [
{
"brand": " Not A;Brand",
"version": "99"
},
{
"brand": "Chromium",
"version": "96"
},
{
"brand": "Google Chrome",
"version": "96"
}
],
"mobile": false
}