Wszystkie wpisy

FourA Digest, 7-14 sierpnia 2026

Auto pobiera sesję ze strony wejściowej witryny, a następnie otwiera wybraną podstronę. Przeglądarka rozwiązuje pola wyboru Cloudflare przy współbieżnych żądaniach.

Najważniejsze zmiany

Wiele witryn udostępnia stronę główną każdemu i blokuje wszystko, co jest jedno kliknięcie dalej. Auto wchodzi teraz głównymi drzwiami: bierze sesję wydaną przez stronę wejściową, a następnie prosi o żądaną stronę, mając tę sesję ze sobą. Browser otrzymał w tym tygodniu trudniejsze zadania. Przechodzi wyzwanie Cloudflare z polem wyboru, gdy wiele żądań trafia na tę samą stronę naraz, a gdy strona pozostaje zablokowana, zgłasza to, co zobaczył, zamiast podawać jedno zwykłe słowo.

Co nowego

Auto otwiera strony zablokowane sesją

Oferta na eBay odrzuca zimny request na każdej z naszych ścieżek. Ten sam URL otwiera się, gdy request niesie zbiór plików cookie, który strona główna eBay wydaje każdemu odwiedzającemu. Bez logowania, bez pożyczonego konta, nic, czego nie można by było zrobić ręcznie w zakładce.

Auto robi to teraz za ciebie. Gdy wyjście dociera do serwera źródłowego i nadal otrzymuje odmowę dla głębszej strony, Auto pobiera stronę główną witryny przez to samo wyjście, zachowuje wszystkie otrzymane pliki cookie i pyta ponownie. Response informuje cię, że to się wydarzyło: zwycięski szczebel zwraca warmup.

Jednak to koszty są najciekawsze. Ta sesja wraca jako przenośna, więc zbiór plików cookie nie jest przypisany do wyjścia, które go zdobyło. Kolejne odczyty przechodzą przez /api/proxy i trafiają na /api/single za 2 kredyty. To ten sam łańcuch eskalacji i ponownego użycia, o którym pisaliśmy przy weryfikacji Cloudflare, z własnymi sesyjnymi plikami cookie dostawcy zastępującymi cf_clearance.

Ograniczone celowo: dwie próby na request, na różnych wyjściach, tylko wtedy, gdy głęboki URL już zawiódł i tylko wtedy, gdy wyjście na samym początku dotarło do serwera źródłowego. Dlatego strona, która po prostu nas blokuje, wykonuje jednorazowo dwa dodatkowe podrzędne wywołania, a nie wpada w pętlę. Więcej o tym, jak drabina wybiera swoje szczeble, znajdziesz w opisie usługi Auto.

Browser przechodzi wyzwania z polem wyboru przy nakładających się na siebie żądaniach

Browser rozwiązuje teraz widżet pola wyboru Cloudflare przy jednoczesnych żądaniach do tej samej strony. Trzy naraz na stronie informacyjnej chronionej przez Turnstile: 5.2s, 5.8s, 9.1s.

Przy okazji wprowadzono dwie mniejsze zmiany. Naciśnięcie liczy się tylko wtedy, gdy widżet faktycznie zniknie, ponieważ Cloudflare ponawia swoje wyzwanie częściej, niż można by się spodziewać (pierwsze naciśnięcie regularnie nie kończy weryfikacji). Z kolei zweryfikowana strona zgłasza defenseSolved: true w wywołaniu, które ją wyczyściło, co jest tym samym wywołaniem obciążonym za rozwiązanie.

Zablokowana strona mówi ci, co widział solver

"Timeout" wskazuje na opóźnienia. W większości przypadków opóźnienie nie stanowi problemu, a odpowiedź kryje się na kolejnym wyjściu.

Gdy Cloudflare odrzuca rozwiązanie, ponownie wysyła wyzwanie i umieszcza własny znacznik ponownej próby w plikach cookie. Browser odczytuje ten znacznik. Zamiast czekać na upływ czasu, odpowiada po około 17 sekundach, podając dostawcę, wykonane naciśnięcia i informację, czy przyznano dostęp:

Timeout after 12s: the cloudflare challenge did not complete from this exit
(2 checkbox presses, clearance granted, challenge re-issued by the site)

Jedna z tych linii mówi, aby wysłać request w inny sposób. Druga nie mówi nic.

Błędy z warstwy API są teraz bardziej czytelne. Request, który przekracza czas oczekiwania, wraca jako timeout. Usługa, do której nie możemy dotrzeć, wraca jako niedostępna. Żaden z tych błędów nie jest opisywany jako problem z proxy, jeśli request w ogóle nie miał przypisanego proxy. timeout_ms w wywołaniu Browser jest respektowane do pełnych 120 sekund, które akceptuje API. Dzięki temu wolny cel otrzymuje ustawiony budżet, a ty czytasz werdykt silnika zamiast bramki. Parametry są wymienione w dokumentacji API.

Dane rozliczeniowe i poprawa faktury w miesiącu jej wystawienia

Bułgarskie faktury drukują przedstawiciela firmy (MOL) w polu odbiorcy. Nic w systemie go nie zbierało, więc ta linia zawsze była pusta. Dane rozliczeniowe mają teraz to pole.

Tabela Faktury oferuje opcję Aktualizuj dane dla faktury, która jest nadal w miesiącu wystawienia i której zamrożone dane różnią się od twojego obecnego profilu rozliczeniowego. Okno dialogowe wymienia każde pole, które ulega zmianie i na co się zmienia. Mówi wprost, że numer, daty i kwoty pozostają bez zmian. Potwierdzenie tego jest twoją zgodą, zapisaną po naszej stronie. Faktura w tym oknie, która nie ma nic do zmiany, wyświetla komunikat "Możliwość edycji do" i datę. To okno czasowe jest czymś, co widzisz, a nie czymś, o czym dowiadujesz się później.

Pod maską

Każdy skrypt, który uruchamia Dashboard, jest serwowany z naszego własnego origin, a logowanie przekierowuje cię tylko na ścieżkę w tej witrynie.

Wdrażanie usługi renderowania odbywa się na jednym serwerze naraz, a każdy serwer musi obsłużyć rzeczywistą stronę, zanim kolejny zostanie ruszony.

W portalu statusu, endpoint problemów serwuje otwarte i rozwiązane zgłoszenia przez publiczne API, zgodnie z tym, co wyświetla strona.

Odmowa, która nazywa samą siebie, to jedno wywołanie. Oczekiwanie, które kończy się błędem "Timeout", jest zgadywaniem, co wypróbować dalej, opłaconym w tej samej cenie. Błędy są częścią produktu, a w tym tygodniu zaczęliśmy je w ten sposób traktować.