Panatilihing Buo ang Naka-encode na Proxy Credentials sa Batch File
Panatilihin ang mga username at password ng proxy na naka-encode sa porsyento kapag inilipat ang Windows command sa isang .bat file.
Gumagana ang proxy URL kapag direktang na-configure, ngunit nabibigo ang authentication pagkatapos mailipat ang parehong halaga sa isang Windows batch file. Suriin kung binago ng batch parser ang mga percent sign bago natanggap ng HTTP client ang URL.
May dalawang magkahiwalay na representasyon. Maaaring katawanin ng URL encoding ang backslash bilang %5C at ang tandang pananong bilang %3F. Ang literal na percent sign sa isang batch file command ay kailangang i-escape bilang %%.
Para sa isang halimbawang account na domain\user na may placeholder na password na pass?, maaaring maglaman ang .bat file ng:
set "https_proxy=http://domain%%5Cuser:pass%%[email protected]:8080"
Ang prosesong ilulunsad pagkatapos ay dapat makatanggap ng URL na naglalaman ng domain%5Cuser:pass%3F. Ang mga nadobleng percent sign ay kabilang sa batch source, hindi sa proxy URL na iniimbak ng kliyente.
Huwag kopyahin ang batch spelling na iyon sa isang .npmrc file o sa proxy field ng isang application: hindi dumadaan ang mga input na iyon sa parehong hakbang ng batch parsing. Gayundin, hindi PowerShell syntax ang halimbawang ito. Ang ibang wrapper, gaya ng CALL o command na ginawa para sa pangalawang shell, ay maaaring magdagdag ng isa pang parsing pass at kailangan ng sarili nitong pagsusuri.
Ilagay ang SET assignment sa mga quotation mark gaya ng ipinapakita upang ang di-sinasadyang puwang o shell metacharacter ay hindi maging bahagi ng hindi sinasadyang command. Ang mga quotation mark lamang ay hindi pumipigil sa percent expansion.
Kapag sinusuri ang resulta, ihambing ang inaasahang encoding sa isang na-edit na representasyon sa halip na i-print ang URL na may password sa isang shared log. Pinapanatili ng pag-aayos ng shell escaping ang credential; hindi ito pumipili ng authentication scheme na hindi na sinusuportahan ng kliyente.