JavaScript có thể thay đổi proxy của trình duyệt không?
Phân biệt mã trang web thông thường với tiện ích trình duyệt được cấp quyền có thể cấu hình proxy.
Một đoạn script chạy trên trang web không có thiết lập chung nào để thay đổi proxy đi ra của trình duyệt. Tiện ích trình duyệt có thể có thêm quyền, nhưng nó chạy theo một mô hình bảo mật và cấu hình khác.
Sự khác biệt này bị mất trong các câu trả lời diễn đàn cũ. Mã sử dụng phần nội bộ đặc quyền của Firefox, mô-đun tiện ích cũ hoặc add-on SDK đã bị bỏ rơi chưa bao giờ là API trang web thông thường. Dán một đoạn như vậy vào trang không cấp những quyền đó.
Dùng API tiện ích của trình duyệt
Tiện ích Firefox có thể dùng API proxy.settings đã được ghi chép với các quyền cần thiết. Chrome cung cấp API tiện ích proxy riêng. Mô hình cấu hình của hai bên khác nhau; hãy kiểm tra yêu cầu manifest và các thiết lập được hỗ trợ cho trình duyệt bạn nhắm tới.
Tiện ích cũng nên tính đến các chính sách hoặc tiện ích khác đang kiểm soát cùng thiết lập đó. Một lệnh gọi API thành công không phải lý do để cho rằng mọi đích đến nay đều đi theo tuyến bạn định. Hãy kiểm tra cấu hình thu được và giữ khả năng của người dùng trong việc khôi phục nó.
Đổi URL fetch sẽ đổi đích đến
Một trang web có thể gọi máy chủ ứng dụng chuyển tiếp yêu cầu thay cho nó, tuân theo quy tắc web của trình duyệt. Trong thiết kế đó trình duyệt kết nối tới máy chủ ứng dụng ấy. Nó không cài một proxy chung và không đổi tuyến mà các tab không liên quan đang dùng.
Tương tự, gửi một tiêu đề với địa chỉ IP khác không làm đổi địa chỉ nguồn của kết nối. Đích đến có thể diễn giải siêu dữ liệu chuyển tiếp đáng tin theo chính sách của nó, nhưng đường đi mạng là một sự thật riêng.
Nếu mục tiêu của bạn là proxy đổi IP để duyệt web, hãy chọn một mục phù hợp từ danh sách proxy miễn phí và cấu hình proxy trình duyệt được hỗ trợ hoặc tiện ích được cấp quyền. Nếu mục tiêu là việc fetch từ xa của một ứng dụng web, hãy thiết kế tính năng đó quanh ranh giới máy chủ và trình duyệt thực tế của nó.