Tiện ích mở rộng trình duyệt có thể gặp thách thức xác thực từ hai nơi khác nhau: proxy mang theo yêu cầu và trang web đích. Chúng không được tự động nhận cùng một tài khoản.

Yếu tố phân biệt hữu ích trong sự kiện webRequest.onAuthRequired của Chrome là isProxy. Một callback loại bỏ kiểm tra đó chỉ để lời nhắc biến mất có thể bắt đầu cung cấp thông tin xác thực proxy cho thách thức nguồn gốc.

Khớp với proxy mà bạn định tin cậy

Kiểm tra isProxy là một khởi đầu. Cũng giới hạn việc xử lý trong phạm vi bên thách thức proxy dự kiến và ngữ cảnh yêu cầu. Một tiện ích quản lý nhiều điểm cuối nên chọn tài khoản thuộc điểm cuối đó, không phải một mật khẩu toàn cục cho mọi thách thức.

Đừng cho rằng việc thiết lập tuyến proxy và xử lý đăng nhập của nó là một quyền hoặc một lệnh gọi API. Chrome ghi tài liệu về chúng riêng. Hãy dùng tham chiếu webRequest hiện hành cho dữ liệu sự kiện và quyền xác thực. Ví dụ đăng ký trình nghe Manifest V3 cho thấy đăng ký đồng bộ và chọn tài khoản bên trong callback.

Kiểm tra thế hệ manifest

Các ví dụ đề cập API WebRequest thử nghiệm đến từ các bản phát hành tiện ích cũ. Yêu cầu quyền hiện tại phụ thuộc vào thế hệ manifest của tiện ích và mô hình triển khai. Đặc biệt, việc xử lý xác thực có đường dẫn quyền được hỗ trợ riêng; một ví dụ trình nghe chặn lỗi thời không đủ để chứng minh rằng tiện ích Manifest V3 có thể chạy nó mà không cần thay đổi.

Trình xử lý đúng cũng phải tránh thử lại vô hạn cùng thông tin xác thực đã bị từ chối. Hãy coi thách thức thứ hai sau khi đã cung cấp tài khoản là bằng chứng cần điều tra, chứ không phải yêu cầu phát lại mật khẩu mãi mãi.

Thông tin xác thực nên ở lại trong đường xử lý được bảo vệ thích hợp của tiện ích. Đừng công bố chúng trong tệp PAC hoặc mã hóa cứng trong một mẫu được phân phối. Mục tiêu là đăng nhập proxy phạm vi hẹp, không phải một quy tắc toàn trình duyệt trả lời mọi thách thức xác thực bằng cùng một bí mật.

Bài viết liên quan