Sieć VPN może przenosić ruch przeglądarki na serwer proxy, a mimo to przeglądarka nie może korzystać z tego serwera proxy, ponieważ trasa i dane uwierzytelniające to różne rzeczy. Bezgłowa automatyzacja sprawia, że luka jest trudniejsza do zauważenia, ponieważ nie ma okna ani monitu o zauważenie. Awaria zwykle objawia się zawieszeniem lub ogólnym błędem nawigacji i w pierwszej kolejności zrzucamy winę na tunel. Poniższa lista kontrolna oddziela cztery rzeczy, które muszą być spełnione, aby bezgłowe żądanie za pośrednictwem uwierzytelnionego serwera proxy mogło zakończyć się powodzeniem.

Dwie rozmowy, dwie referencje

Odbywają się dwie rozmowy i należą one do różnych stron. Przeglądarka najpierw łączy się z odbiornikiem proxy, który może zażądać od niej poświadczeń; następnie serwer proxy nawiązuje lub zezwala na dalsze połączenie z miejscem docelowym. VPN może obsługiwać pierwszy etap, nie będąc punktem końcowym rzucającym wyzwanie przeglądarce, i nie ma nic do powiedzenia na temat drugiego.

HTTP 407 to sygnał, który klient musi uwierzytelnić na potrzeby żądania proxy, przenoszony w Proxy-Authenticate z oczekiwaną odpowiedzią w Proxy-Authorization. To nie jest login docelowej strony internetowej, a mieszanie tych dwóch jest najczęstszym źródłem nieporozumień.

Zatem cztery elementy sprawdzające to: który serwer proxy faktycznie został wybrany przez przeglądarkę, kto odpowiada na pytanie 407, w jakiej sieci znajduje się proces przeglądarki oraz w jaki sposób dane uwierzytelniające są dostarczane bez udziału człowieka. Każda z nich może zawieść niezależnie i każda awaria wygląda podobnie z zewnątrz. Wykonuj je w odpowiedniej kolejności, ponieważ późniejsza kontrola nie może zrekompensować wcześniejszej. Serwer proxy, który nigdy nie został wybrany, nie może zostać uwierzytelniony, a dane uwierzytelniające, które istnieją tylko na Twoim laptopie, nie mogą dotrzeć do kontenera.

Sprawdź 1: który serwer proxy jest rzeczywiście wybrany

Zacznij od wyboru, ponieważ przeglądarka, która ignoruje ustawienia proxy, w ogóle nie sprosta wyzwaniu. W Chrome flaga to --proxy-server=proxy.example:3128 , z --proxy-bypass-list dla wyjątków, a Selenium udostępnia to samo poprzez opcje przeglądarki. Plik PAC to inny mechanizm z własnymi trybami awarii.

Następnie potwierdź w środowisku działającej przeglądarki, a nie w powłoce. Niezależną sondą z tym samym serwerem proxy jest curl -x http://proxy.example:3128 -v https://example.com , a jej pełne dane wyjściowe pokazują, czy CONNECT powiodło się, co wróciło Proxy-Authenticate i czy zwrócono 407. Jeśli curl otrzyma 407 i przeglądarka zawiesi się, przyczyną problemu jest ścieżka danych uwierzytelniających, a nie sieć. Jeśli curl się powiedzie, a przeglądarka nie, oznacza to, że przeglądarka nie korzysta z serwera proxy, o którym myślisz.

Sprawdź 2: kto odpowiada na 407

407 ma właściciela, a jego nazwa decyduje, dokąd trafi poprawka. Jeśli wyzwanie pochodzi z korporacyjnego serwera proxy, rozwiązaniem jest poświadczenie, które przeglądarka może przedstawić bez nadzoru. Jeśli pochodzi z nadrzędnego serwera proxy, do którego przekazuje pierwszy serwer proxy, dane uwierzytelniające należą do tego drugiego przeskoku, a pierwszy serwer proxy może przekazywać wyzwanie bez zmian. Przeczytaj zakres uwierzytelniania i hosta w nagłówku Proxy-Authenticate, ponieważ stanowią one nazwę pola, o które pytasz.

Zachowaj to rozróżnienie we wszystkim, co logujesz. Wyzwanie proxy, odmowa dalszego połączenia, logowanie do witryny internetowej i przekroczenie limitu czasu transportu VPN to cztery różne awarie u czterech różnych właścicieli, a jeden ogólny komunikat o błędzie niszczy potrzebne informacje.

Sprawdź 3: ścieżkę danych uwierzytelniających

Samo poświadczenie jest miejscem, w którym psuje się większość konfiguracji nienadzorowanych. Selenium może ustawić host i port proxy, ale uwierzytelnianie proxy HTTP nie jest przenośną częścią tej konfiguracji, a poświadczenia w adresie URL proxy nie są mechanizmem, na którym można polegać w różnych przeglądarkach i wersjach sterowników. Obsługiwane opcje to te, które odpowiadają rzeczywistym stosom dokumentów: rozszerzenie przeglądarki, które odpowiada na wyzwanie, lokalny serwer proxy przekazujący, który dodaje nagłówek i jest dostępny tylko z poziomu zadania, lub serwer proxy, który uwierzytelnia obciążenie w inny sposób. Wybierz jedną celowo i porównaj ją z dokładną wersją przeglądarki, sterownika i Selenium, którą będziesz uruchamiać.

Trzymaj dane uwierzytelniające z dala od miejsc, w których mogą one wyciekać. Wiersze poleceń są widoczne na listach procesów, zrzuty ekranu trafiają do raportów z testów, śladów przeglądarki i nagłówków przechwytywania plików HAR, a zatwierdzona konfiguracja testu jest na zawsze. Skorzystaj z mechanizmu tajnego dostarczania zadania i jego reguł redagowania, a także określ zakres konta proxy w zakresie miejsc docelowych lub roli, której potrzebuje.

Jeśli organizacja oferuje dozwoloną bezpośrednią trasę VPN zamiast obowiązkowego serwera proxy, należy wyraźnie porównać oba projekty. Nie wyłączaj po cichu serwera proxy ani nie imituj uwierzytelniania innego klienta, aby obejść zasady.

Sprawdź 4: własny kontekst sieciowy procesu przeglądarki

To jest kontrola, którą ludzie pomijają. Przeglądarka uruchomiona przez pracownika, kontener lub zdalny węzeł Selenium Grid korzysta z sieci tego środowiska, więc połączenie VPN Twojego laptopa i zmienne proxy powłoki opisują ścieżkę, której przeglądarka może nigdy nie dotknąć.

Zapisz pięć faktów dotyczących zadania zakończonego niepowodzeniem: host przeglądarki, skonfigurowany serwer proxy, początkowa ścieżka programu rozpoznawania nazw, wybrana trasa i właściciel uwierzytelnienia. Następnie wykonaj jedno nieszkodliwe autoryzowane żądanie z dokładnie tego kontekstu, pozostawiając normalną docelową weryfikację TLS i autoryzację aplikacji. Bezgłowa przeglądarka, która uruchamia się pomyślnie, nie dowodzi ani dostępu do proxy, ani zasięgu VPN, a zrzut ekranu pustej strony niczego nie dowodzi. Jedynym dowodem, który się liczy, jest żądanie zwracające 200 w całym łańcuchu.

Gotowy przepływ pracy ma trzy właściwości, które warto sprawdzić jako zestaw. Istnieje obsługiwana trasa od hosta przeglądarki do serwera proxy, wyraźna polityka pośrednictwa, która określa nazwę serwera proxy i miejsc docelowych, a także cykl życia danych uwierzytelniających niezależny od odpowiedzi operatora na niewidoczny monit. Jeśli którykolwiek z trzech zależy od osoby, zadanie nie jest jeszcze pozostawione bez nadzoru, niezależnie od kodu wyjścia. Zapisz pięć faktów, zanim następna osoba odziedziczy potok.

Powiązane artykuły