WebExtension ProxyInfo в Firefox поддерживает поля имени пользователя и пароля SOCKS начиная с Firefox 64. Эти поля относятся к интерфейсу расширения, а не к диалогу ручной настройки прокси.

Для существующего расширения с прокси и соответствующими разрешениями хоста:

browser.proxy.onRequest.addListener(() => ({
  type: 'socks',
  host: 'proxy.example',
  port: 1080,
  username: proxyUser,
  password: proxyPassword,
  proxyDNS: true,
}), {urls: ['<all_urls>']});

Передайте proxyUser и proxyPassword через обработку учётных данных расширения. type: 'socks' означает SOCKS5; socks4 не обеспечивает такую же аутентификацию по паролю.

proxyDNS: true явно передаёт разрешение имени назначения прокси. В справочнике ProxyInfo указано значение по умолчанию false; явное задание этого поля избавляет от зависимости от этого значения.

Используйте эти поля имени пользователя и пароля для аутентификации SOCKS. proxyAuthorizationHeader предназначен для прокси семейства HTTP.

Сервер SOCKS5 должен поддерживать и принимать учётную запись. Этот обмен именем пользователя и паролем не шифрует транспорт; HTTPS назначения сохраняет собственную проверку TLS.

Похожие статьи