Firefox의 WebExtension ProxyInfo는 Firefox 64부터 SOCKS 사용자 이름과 비밀번호 필드를 지원합니다. 이 필드는 확장 기능 인터페이스에 속하며 수동 프록시 대화상자와는 별개입니다.

프록시와 일치하는 호스트 권한이 있는 기존 확장 기능의 경우:

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 검증을 유지합니다.

관련 글