프록시 URL은 직접 구성하면 작동하지만, 같은 값을 Windows 배치 파일로 옮긴 뒤에는 인증이 실패합니다. HTTP 클라이언트가 URL을 받기 전에 배치 파서가 퍼센트 기호를 바꾸었는지 확인하십시오.

표현은 두 가지입니다. URL 인코딩은 역슬래시를 %5C로, 물음표를 %3F로 나타낼 수 있습니다. 배치 파일 명령에서 리터럴 퍼센트 기호는 %%로 이스케이프해야 합니다.

예시 계정 domain\user에 자리 표시자 비밀번호 pass?를 사용하는 경우 .bat 파일에는 다음이 들어갈 수 있습니다:

set "https_proxy=http://domain%%5Cuser:pass%%[email protected]:8080"

그 뒤에 실행되는 프로세스는 domain%5Cuser:pass%3F을 포함하는 URL을 받아야 합니다. 겹친 퍼센트 기호는 배치 원본에 속하며, 클라이언트가 저장하는 프록시 URL의 것이 아닙니다.

그 배치 표기를 .npmrc 파일이나 응용 프로그램의 프록시 필드에 복사하지 마십시오. 그 입력은 같은 배치 구문 분석 단계를 거치지 않습니다. 마찬가지로 이 예제는 PowerShell 구문이 아닙니다. CALL이나 두 번째 셸용으로 만든 명령 같은 다른 래퍼는 또 다른 구문 분석 단계를 추가할 수 있으므로 별도로 검토해야 합니다.

표시된 것처럼 SET 할당을 따옴표로 묶어 우연한 공백이나 셸 메타 문자가 의도하지 않은 명령의 일부가 되지 않게 하십시오. 따옴표만으로는 퍼센트 확장을 막을 수 없습니다.

결과를 확인할 때는 비밀번호가 포함된 URL을 공유 로그에 출력하는 대신 예상 인코딩을 가린 표현과 비교하십시오. 셸 이스케이프 수정은 자격 증명을 보존할 뿐, 클라이언트가 이미 지원하지 않던 인증 방식을 선택하지는 않습니다.

관련 글