웹페이지에서 실행되는 스크립트에는 브라우저의 나가는 프록시를 바꾸는 일반 설정이 없습니다. 브라우저 확장 프로그램은 추가 권한을 가질 수 있지만, 다른 보안 및 구성 모델에서 동작합니다.

이 구분은 오래된 포럼 답변에서 사라집니다. 특권이 있는 Firefox 내부, 레거시 확장 모듈, 또는 버려진 add-on SDK를 사용하는 코드는 결코 일반 웹페이지 API가 아니었습니다. 그런 스니펫을 페이지에 붙여 넣는다고 그 권한이 생기지 않습니다.

브라우저의 확장 API를 사용하세요

Firefox 확장 프로그램은 필요한 권한이 있으면 문서화된 proxy.settings API를 사용할 수 있습니다. Chrome은 자체 프록시 확장 API를 제공합니다. 두 브라우저의 구성 모델은 다릅니다. 대상 브라우저의 매니페스트 요구 사항과 지원되는 설정을 확인하세요.

확장 프로그램은 같은 설정을 제어하는 정책이나 다른 확장 프로그램도 고려해야 합니다. API 호출이 성공했다고 해서 모든 목적지가 이제 의도한 경로를 따른다고 가정할 근거는 아닙니다. 결과 구성을 확인하고 사용자가 되돌릴 수 있는 상태를 유지하세요.

fetch URL을 바꾸면 목적지가 바뀝니다

웹페이지는 브라우저의 웹 규칙이 허용하는 범위에서 자신을 대신해 요청을 전달하는 애플리케이션 서버를 호출할 수 있습니다. 그 설계에서 브라우저는 해당 애플리케이션 서버에 연결합니다. 일반 브라우저 프록시를 설치한 것도, 무관한 탭의 경로를 바꾼 것도 아닙니다.

마찬가지로 다른 IP 주소를 담은 헤더를 보내도 연결의 출발지 주소는 바뀌지 않습니다. 목적지가 신뢰하는 전달 메타데이터를 자체 정책에 따라 해석할 수는 있지만, 네트워크 경로는 별개의 사실입니다.

목표가 탐색용 IP 변경 프록시라면 무료 프록시 목록에서 적절한 항목을 골라 지원되는 브라우저 프록시나 권한 있는 확장 프로그램을 구성하세요. 목표가 한 웹 애플리케이션의 원격 fetch라면, 그 기능을 실제 서버와 브라우저 경계에 맞춰 설계하세요.

관련 글