Cái bẫy lớn nhất của tiện ích proxy trên trình duyệt là phạm vi: chúng chỉ tiếp quản lưu lượng của trình duyệt và vẫn có thể rơi vào kết nối trực tiếp khi không khớp quy tắc nào. Bài viết phân loại tiện ích theo mục đích sử dụng, liệt kê các tiêu chí đánh giá như giao thức, xác thực, quyền hạn, tình trạng bảo trì, và đưa ra các bước tự kiểm tra IP đầu ra cùng rò rỉ WebRTC.
Tiện ích proxy trên trình duyệt có một ranh giới thường bị bỏ qua: chúng chỉ tiếp quản những yêu cầu do chính trình duyệt gửi đi. Các bản cập nhật hệ thống, ứng dụng desktop và những ứng dụng khác vẫn đi theo đường cũ. Hãy xác định rõ bạn muốn đưa những gì qua proxy trước, rồi mới chọn công cụ; như vậy sẽ tiết kiệm rất nhiều công đoạn tìm lỗi về sau.
Trước tiên chia thành ba nhóm mục đích
Nhu cầu phổ biến nhất là chuyển đổi theo từng trang: cho một vài tên miền đi qua proxy, phần còn lại vẫn kết nối trực tiếp. Tình huống này được điều khiển bằng danh sách quy tắc, và giá trị của tiện ích nằm ở việc chuyển đổi nhanh và phân luồng theo tên miền.
Nhóm thứ hai là proxy toàn cục, trong đó toàn bộ lưu lượng của trình duyệt đều đi ra từ một điểm đầu ra duy nhất. Cách thiết lập đơn giản nhất, nhưng cái giá cũng trực tiếp: nếu đầu ra hỏng, trình duyệt coi như mất mạng, khiến việc dùng hằng ngày thiếu ổn định.
Nhóm thứ ba gắn với môi trường: mỗi hồ sơ trình duyệt được cố định vào một đầu ra và các hồ sơ không ảnh hưởng lẫn nhau. Đây là cách làm khi vận hành nhiều tài khoản hoặc nhiều dự án song song; ở đây tiện ích chỉ mang tính bổ sung, vì bản thân đầu ra thường được cấu hình ở tầng thấp hơn.
Đánh giá một tiện ích cần xem những gì
Hỗ trợ giao thức đứng đầu danh sách. Proxy HTTP và HTTPS chỉ xử lý TCP, còn SOCKS5 tổng quát hơn, nhưng mức hỗ trợ UDP phụ thuộc vào cách triển khai, và nhiều tiện ích hoặc cho UDP đi thẳng hoặc loại bỏ nó hoàn toàn. Điểm này quan trọng về sau, vì liên quan trực tiếp đến việc WebRTC có rò rỉ hay không.
Cần xem kỹ phương thức xác thực. Xác thực bằng tên người dùng và mật khẩu thì tiện, nhưng thông tin đăng nhập lưu trong tiện ích nằm cục bộ dưới dạng văn bản thuần hoặc mã hóa yếu, nên người khác dùng cùng máy tính có thể đọc được; xác thực bằng danh sách IP cho phép không lưu gì trong tiện ích, đổi lại mỗi lần đổi mạng phải cập nhật lại danh sách.
Phạm vi là nơi hay phát sinh vấn đề nhất. Ở chế độ quy tắc, những tên miền không khớp quy tắc nào mặc định đi trực tiếp, mà bạn có thể không biết trang đang thực sự yêu cầu những tên miền nào. Khi một trang HTTPS đã thiết lập kết nối, tiện ích chỉ thấy tên miền chứ không thấy đường dẫn cụ thể, nên ý tưởng phân luồng theo đường dẫn gần như không khả thi.
Cũng nên xem qua phạm vi quyền hạn. Nếu một tiện ích proxy còn xin quyền đọc dữ liệu trên mọi trang web, thông tin thẻ hoặc bộ nhớ tạm, hãy tự hỏi những quyền đó có liên quan gì đến chức năng mà nó quảng cáo hay không. Việc nâng phiên bản manifest của tiện ích trình duyệt cũng đang siết chặt các giao diện khả dụng, khiến một số tiện ích cũ buộc phải thay đổi kiến trúc.
Về mức độ bảo trì, đừng nhìn số mục trong nhật ký thay đổi, mà xem có ai theo kịp các thay đổi từ phía nguồn hay không. Trong nhóm tiện ích proxy, bản trên cửa hàng của Proxy SwitchyOmega đã bị gỡ, và một bản fork do cộng đồng duy trì (ví dụ nhánh ZeroOmega) đã tiếp nhận phần thích ứng về sau; các tiện ích như FoxyProxy đều có bản cho nhiều trình duyệt. Đây chỉ là ví dụ trung lập; cái nào phù hợp hơn vẫn phụ thuộc vào những điểm ở trên.
Những lưu lượng nó không bao phủ
Sau khi cài tiện ích, bản thân trình duyệt đi qua proxy, nhưng các chương trình khác trên cùng máy, dịch vụ cập nhật chạy nền và một phần lưu lượng bên trong trình duyệt không tuân theo đường yêu cầu của tiện ích vẫn có thể đi ra bằng đầu ra cục bộ. Việc kiểm tra tính nhất quán của mạng không thể chỉ nhìn vào bảng điều khiển của tiện ích. Muốn cách ly hoàn toàn thì phải giải quyết ở tầng proxy hệ thống hoặc cao hơn.
Tự kiểm tra: xem đầu ra trước, rồi mới xem rò rỉ

Bước đầu là kiểm tra IP đầu ra. Mở vài trang trả về IP người truy cập và vị trí, kiểm tra một lần ở cửa sổ thường và một lần ở thẻ khớp với quy tắc của bạn, rồi so sánh xem kết quả có giống nhau không. Nếu quy tắc ghi proxy mà vẫn ra địa chỉ cục bộ, nghĩa là quy tắc chưa có tác dụng hoặc tên miền không khớp. Kiểm tra vài trang sẽ phát hiện trường hợp chỉ một phần yêu cầu đi qua proxy.
Bước thứ hai là kiểm tra WebRTC. Các trang kiểm tra chuyên dụng sẽ liệt kê địa chỉ ứng viên cục bộ và địa chỉ ứng viên công khai mà trình duyệt thu được; nếu trong nhóm công khai xuất hiện IP thật thay vì đầu ra proxy, nghĩa là UDP không đi qua proxy và script trên trang vẫn xác định được vị trí mạng thực tế của bạn.
Bước thứ ba là kiểm tra DNS. Nếu vị trí máy chủ phân giải tên miền cách quá xa vị trí đầu ra, một số trang sẽ coi môi trường là bất thường.
Bước cuối là kiểm tra lại trong cửa sổ ẩn danh. Nhiều tiện ích mặc định không hoạt động ở chế độ ẩn danh và cần được cho phép thủ công trong phần cài đặt; quên bước này sẽ dẫn đến kết luận hoàn toàn sai.
Kiểm tra xong rồi mới quyết định cách dùng
Kết quả tự kiểm tra đáng tin hơn phần mô tả của tiện ích. Khi đầu ra thật, vị trí phân giải DNS và mức phơi bày WebRTC đã khớp nhau, hãy quyết định tiếp tục dùng tiện ích hay hạ đầu ra xuống tầng thấp hơn. Ở tình huống nhiều môi trường song song, tốt nhất mỗi môi trường nên có một đầu ra riêng và cố định, thay vì nhiều máy dùng chung một đầu ra.


