O ProxyInfo das WebExtensions do Firefox aceita campos de nome de usuário e senha SOCKS desde o Firefox 64. Esses campos pertencem à interface da extensão, não à caixa de diálogo de proxy manual.

Para uma extensão existente com proxy e permissões de host correspondentes:

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

Forneça proxyUser e proxyPassword pela gestão de credenciais da extensão. type: 'socks' significa SOCKS5; socks4 não oferece a mesma autenticação por senha.

proxyDNS: true delega explicitamente a resolução do nome de destino ao proxy. A referência de ProxyInfo documenta um valor padrão false; definir este campo explicitamente evita depender desse valor padrão.

Use esses campos de nome de usuário/senha para autenticação SOCKS. proxyAuthorizationHeader serve para proxies da família HTTP.

O servidor SOCKS5 deve suportar e aceitar a conta. Esta troca de nome de usuário e senha não criptografa o transporte; o HTTPS de destino mantém sua própria verificação TLS.

Artigos relacionados