VPN có thể mang lưu lượng truy cập của trình duyệt đến máy chủ proxy nhưng vẫn khiến trình duyệt không thể sử dụng proxy đó vì tuyến đường và thông tin xác thực là hai thứ khác nhau. Tính năng tự động hóa không cần đầu làm cho khoảng cách khó nhìn thấy hơn vì không có cửa sổ và không có lời nhắc để nhận biết. Lỗi thường xuất hiện dưới dạng treo máy hoặc lỗi điều hướng chung và bản năng đầu tiên là đổ lỗi cho đường hầm. Danh sách kiểm tra bên dưới phân biệt bốn yếu tố cần phải đúng trước khi yêu cầu không có tiêu đề thông qua proxy được xác thực có thể thành công.

Hai cuộc trò chuyện, hai thông tin xác thực

Hai cuộc trò chuyện xảy ra và chúng thuộc về các bên khác nhau. Trước tiên, trình duyệt kết nối với trình nghe proxy, trình nghe này có thể thách thức trình duyệt đó để lấy thông tin xác thực; proxy sau đó thực hiện hoặc cho phép kết nối tiếp theo tới đích. VPN có thể thực hiện chặng đầu tiên mà không phải là điểm cuối thách thức trình duyệt và không có gì để nói về chặng thứ hai.

HTTP 407 là tín hiệu mà khách hàng phải xác thực cho yêu cầu proxy, được chứa trong Proxy-Authenticate với câu trả lời dự kiến trong Proxy-Authorization. Đó không phải là thông tin đăng nhập của trang web đích và việc trộn lẫn cả hai là nguồn gây nhầm lẫn phổ biến nhất ở đây.

Vì vậy, bốn bước kiểm tra là: trình duyệt thực sự đã chọn proxy nào, ai trả lời 407, quy trình trình duyệt đang bật trên mạng nào và cách phân phối thông tin xác thực mà không cần con người. Mỗi người có thể thất bại một cách độc lập, và mỗi thất bại nhìn từ bên ngoài đều có vẻ giống nhau. Hãy thực hiện chúng theo thứ tự, vì lần kiểm tra sau không thể bù đắp cho lần kiểm tra trước đó. Proxy chưa bao giờ được chọn sẽ không thể được xác thực và thông tin xác thực chỉ tồn tại trên máy tính xách tay của bạn không thể tiếp cận vùng chứa.

Kiểm tra 1: proxy nào thực sự được chọn

Bắt đầu bằng việc lựa chọn, vì trình duyệt bỏ qua cài đặt proxy của bạn sẽ không bao giờ đạt được thử thách. Trong Chrome, cờ là --proxy-server=proxy.example:3128 , với --proxy-bypass-list để loại trừ và Selenium hiển thị điều tương tự thông qua các tùy chọn trình duyệt của nó. Tệp PAC là một cơ chế khác với các chế độ lỗi riêng.

Sau đó xác nhận từ bên trong môi trường của trình duyệt đang chạy chứ không phải từ trình bao của bạn. Một cuộc thăm dò độc lập có cùng một proxy là curl -x http://proxy.example:3128 -v https://example.com và kết quả đầu ra dài dòng của nó cho biết liệu CONNECT có thành công hay không, Proxy-Authenticate đã trả về những gì và liệu 407 có được trả về hay không. Nếu Curl nhận được 407 và trình duyệt bị treo thì đường dẫn thông tin xác thực có vấn đề chứ không phải do mạng. Nếu cuộn tròn thành công còn trình duyệt thì không thì trình duyệt đó không sử dụng proxy như bạn nghĩ.

Kiểm tra 2: ai trả lời 407

407 có chủ sở hữu và việc đặt tên cho nó sẽ quyết định nơi sửa lỗi. Nếu thử thách đến từ proxy công ty thì cách khắc phục là thông tin xác thực mà trình duyệt có thể xuất trình mà không cần giám sát. Nếu nó đến từ proxy ngược dòng mà proxy đầu tiên chuyển tiếp tới thì thông tin xác thực sẽ thuộc về bước nhảy thứ hai đó và proxy đầu tiên có thể chuyển tiếp thử thách không thay đổi. Đọc phạm vi xác thực và máy chủ trong tiêu đề Proxy-Authenticate, vì chúng cho biết hộp nào đang yêu cầu.

Giữ nguyên sự khác biệt đó trong bất cứ điều gì bạn đăng nhập. Thử thách proxy, kết nối tiếp theo bị từ chối, đăng nhập trang web và hết thời gian chờ truyền tải VPN là bốn lỗi khác nhau với bốn chủ sở hữu khác nhau và một thông báo lỗi chung sẽ phá hủy thông tin bạn cần.

Kiểm tra 3: đường dẫn thông tin xác thực

Bản thân thông tin xác thực là nơi mà hầu hết các thiết lập không được giám sát đều bị hỏng. Selenium có thể đặt máy chủ và cổng proxy, nhưng xác thực proxy HTTP không phải là một phần di động của cấu hình đó và thông tin xác thực trong URL proxy không phải là cơ chế mà bạn có thể dựa vào trên các trình duyệt và phiên bản trình điều khiển. Các tùy chọn được hỗ trợ là các tài liệu ngăn xếp thực tế của bạn: tiện ích mở rộng trình duyệt giải quyết thách thức, proxy chuyển tiếp cục bộ thêm tiêu đề và chỉ có thể truy cập được từ công việc hoặc proxy xác thực khối lượng công việc bằng các phương tiện khác. Hãy cố tình chọn một cái và kiểm tra nó với trình duyệt, trình điều khiển và phiên bản Selenium chính xác mà bạn sẽ chạy.

Giữ thông tin xác thực tránh xa những nơi có thể làm rò rỉ nó. Các dòng lệnh hiển thị trong danh sách tiến trình, ảnh chụp màn hình nằm trong báo cáo kiểm thử, dấu vết trình duyệt và tệp HAR ghi lại các tiêu đề, còn cấu hình kiểm thử đã cam kết thì tồn tại mãi mãi. Hãy dùng cơ chế phân phối bí mật của công việc và quy tắc che giấu của nó, đồng thời giới hạn tài khoản proxy trong phạm vi đích hoặc vai trò cần thiết.

Nếu tổ chức cung cấp tuyến VPN trực tiếp được phép thay vì proxy bắt buộc, hãy so sánh rõ ràng hai thiết kế. Không lặng lẽ vô hiệu hóa proxy hoặc bắt chước xác thực của ứng dụng khách khác để lách chính sách.

Kiểm tra 4: bối cảnh mạng riêng của quy trình trình duyệt

Đây là bước kiểm tra mà mọi người bỏ qua. Trình duyệt do worker, container hoặc nút Selenium Grid từ xa khởi chạy sẽ dùng mạng của môi trường đó, nên kết nối VPN trên máy tính xách tay và biến proxy trong shell của bạn mô tả một đường đi mà trình duyệt có thể không bao giờ chạm tới.

Ghi lại năm thông tin về công việc không thành công: máy chủ trình duyệt, proxy được định cấu hình, đường dẫn trình phân giải ban đầu, tuyến đã chọn và chủ sở hữu xác thực. Sau đó, thực hiện một yêu cầu được ủy quyền vô hại từ bối cảnh chính xác đó, với xác thực TLS đích thông thường và ủy quyền ứng dụng vẫn được bật. Một trình duyệt không có đầu khởi động thành công không chứng minh được việc truy cập proxy cũng như phạm vi phủ sóng của VPN và ảnh chụp màn hình của một trang trống không chứng minh được điều gì cả. Yêu cầu trả về 200 trong toàn bộ chuỗi là bằng chứng duy nhất có giá trị.

Quy trình công việc đã hoàn thành có ba thuộc tính đáng để kiểm tra dưới dạng bộ. Có một lộ trình được hỗ trợ từ máy chủ trình duyệt đến proxy, một chính sách trung gian rõ ràng đặt tên cho proxy và đích đến cũng như vòng đời thông tin xác thực không phụ thuộc vào nhà điều hành trả lời lời nhắc vô hình. Nếu bất kỳ điều nào trong số ba điều này phụ thuộc vào một người, thì công việc vẫn chưa được giám sát, bất kể mã thoát có nói gì. Viết năm sự thật xuống trước khi người tiếp theo kế thừa quy trình.

Bài viết liên quan