Skrypt może działać lokalnie bez problemu, a po wdrożeniu trafiać na CAPTCHA, błędy 403 lub problemy z logowaniem. Zwykle platforma nie rozpoznaje konkretnego narzędzia, lecz obserwowalne różnice automatyzacji w warstwie protokołu, runtime, fingerprintu, sieci i timingu zachowania.
Powtarza się ten sam scenariusz: skrypt działa lokalnie bardzo dobrze, ale po wdrożeniu zaczyna trafiać na weryfikację człowieka, błędy 403 lub nieudane logowania. Pierwsza myśl często brzmi: narzędzie zostało rozpoznane.
Platformy jednak rzadko skupiają się na ustaleniu, jakiego dokładnie narzędzia użyto. Oceniają przede wszystkim różnicę między tym dostępem a wizytą prawdziwego użytkownika. Playwright steruje przeglądarką; jeśli uruchamiane przez niego środowisko wyraźnie różni się od przeglądarki używanej na co dzień przez człowieka, ruch może zostać zaklasyfikowany jako zautomatyzowany. Różnice występują na kilku warstwach, dlatego warto analizować je osobno.

Warstwa protokołu mówi jeszcze przed wyrenderowaniem strony
Na poziomie protokołu nie chodzi o treść strony, lecz o kształt samego żądania: kombinację nagłówków, wersję przeglądarki i architekturę platformy w UA Client Hints oraz kolejność parametrów podczas zestawiania połączenia.
Środowiska automatyczne często wyglądają w tych miejscach zbyt czysto albo zbyt regularnie. Może brakować oczekiwanych nagłówków, a poszczególne wartości mogą być tak stałe, że nie przypominają komputera używanego przez człowieka od dłuższego czasu. Ta warstwa jest tania w ocenie i pozwala wyciągnąć wnioski jeszcze przed renderowaniem strony, dlatego stosuje się ją bardzo często.
Zmienne runtime tworzą drugą warstwę
Gdy uruchomią się skrypty strony, można odczytać kolejną grupę zmiennych środowiskowych. Zgodnie ze standardem WebDriver navigator.webdriver zwykle zwraca true, gdy przeglądarka jest sterowana przez narzędzie automatyzujące. Do podobnych sygnałów należą flagi automatyzacji w argumentach startowych, obecność window.chrome, kompletność navigator.plugins i navigator.permissions, tryb headless oraz puste listy wtyczek lub rozszerzeń.
Prawdziwe przeglądarki zwykle zawierają kilka elementów domyślnych, więc sama pusta lista może stać się cechą. Wczesne metody wykrywania mocno skupiały się na tej warstwie, bo była łatwa do obserwacji. Dziś niewiele platform opiera się na jednej właściwości; najczęściej oceniają wiele wartości łącznie.
Fingerprint sprawdza spójność, a nie pojedyncze wartości
Niżej znajdują się parametry urządzenia: wyniki renderowania Canvas i WebGL, różnice w przetwarzaniu AudioContext, lista czcionek, parametry ekranu, strefa czasowa, język oraz informacje o sprzęcie. Każdy z tych elementów osobno może wyglądać normalnie, ale razem tworzą względnie stabilny profil urządzenia.
Podejrzane mogą być dwa wzorce. Po pierwsze, parametry mogą do siebie nie pasować — na przykład wynik renderowania sugeruje określony typ GPU, a zestaw czcionek inny system operacyjny. Po drugie, wiele środowisk może być całkowicie identycznych. Jeśli każde zadanie startuje z tej samej konfiguracji, fingerprinty również będą takie same. Platforma nie widzi wtedy stu urządzeń, tylko to samo urządzenie odwiedzające ją sto razy.
Wyjście sieciowe i geografia to twarde ograniczenia
Cechy sieciowe mają niewiele wspólnego z samą przeglądarką: czy IP należy do centrum danych czy łącza domowego, czy adres proxy był masowo nadużywany, czy ASN należy do dostawcy chmury czy operatora, czy konfiguracja DNS zgadza się z regionem IP oraz czy IP często przeskakuje między krajami.
Żądanie ze strefą czasową wskazującą Stany Zjednoczone, ale z wyjściem sieciowym w Niemczech, można zauważyć bez zaawansowanych technik. Sprzeczności geograficzne należą do najtańszych i najłatwiejszych do wykrycia niespójności w całym systemie.
Timing zachowania narasta z czasem
Zachowanie człowieka jest nieregularne: przed kliknięciem może pojawić się krótka pauza, tempo pisania się zmienia, a użytkownik czasem wraca, aby coś poprawić. Skrypty często działają w precyzyjnym, powtarzalnym rytmie, podążają stałą ścieżką, nie wykonują czynności poza celem i generują wyraźnie większą gęstość żądań niż człowiek.
W ciągu ostatnich dwóch lat zmieniały się również metody oceny. W 2026 roku niektórzy dostawcy zabezpieczeń uruchomili systemy ciągłej weryfikacji zachowania, które nie podejmują już jednej decyzji przy pierwszej wizycie. Zamiast tego przez całą sesję zbierają ruchy myszy, rytm kliknięć, trajektorie przewijania i czas spędzony na stronie, a dane w czasie rzeczywistym trafiają na serwer do obliczenia ryzyka. Odświeżenie strony lub przejście dalej nie zeruje wcześniej zgromadzonych sygnałów zachowania; nadal się one kumulują. Oznacza to, że cechy jednego załadowania strony już nie wystarczają — zachowanie jest procesem.
Dlaczego platformy uznają te różnice za sygnały ryzyka
Z perspektywy platformy nie chodzi o ustalenie, jakiego narzędzia używa odwiedzający, lecz o to, czy dostęp przypomina normalne korzystanie z usługi przez prawdziwego człowieka. Rejestracje spamowe, masowe scrapingowanie i nadużycia generują koszty, więc sprzeczność w dowolnym wymiarze może podnieść wynik ryzyka, a kilka sprzeczności naraz staje się jeszcze bardziej widocznych.
Z drugiej strony samo usuwanie cech również nie jest właściwym kierunkiem. Fingerprint prawdziwego urządzenia jest kompletny i wewnętrznie spójny; fingerprint z celowo wyciętymi elementami też może wyglądać nietypowo. Bardziej realistyczne kryteria to trzy pytania: czy cechy są kompletne, czy parametry są ze sobą zgodne oraz czy między różnymi środowiskami występują rozsądne różnice?
Ustalenie przyczyny to nie to samo co omijanie zabezpieczeń
Rozbicie przyczyn na ten poziom służy ustaleniu, gdzie leży problem, a nie wyjaśnianiu, jak ominąć ochronę. Techniczne zmniejszenie prawdopodobieństwa wykrycia nie oznacza zgody na zbieranie danych ani automatyzację usługi. Granice są jasne: należy przestrzegać zasad robots i warunków korzystania z docelowej strony, nie zbierać danych osobowych, nie omijać technicznych zabezpieczeń, kontrolować częstotliwość żądań i nie zakłócać normalnego działania usługi. Ta zasada jest niezależna od rozwiązania technicznego i ma najwyższy priorytet.


