Batch файл дахь кодлогдсон прокси нэвтрэх мэдээллийг хөндөхгүй хадгал
Windows командыг .bat файл руу зөөх үед хувиар кодлогдсон прокси хэрэглэгчийн нэр, нууц үгийг хадгал.
Прокси URL шууд тохируулагдсан үед ажилладаг боловч ижил утга Windows batch файл руу шилжсэний дараа нэвтрэлт бүтэлгүйтдэг. HTTP клиент URL-ыг авахаас өмнө batch задлагч хувийн тэмдгийг өөрчилсөн эсэхийг шалга.
Хоёр тусдаа дүрслэл бий. URL кодчилол нь буцах налуу зураасыг %5C, асуултын тэмдгийг %3F гэж дүрсэлж болно. Batch файлын команд дахь шууд хувийн тэмдгийг %% гэж escape хийх ёстой.
Жишээ domain\user бүртгэлд pass? орлуулагч нууц үгтэйгээр .bat файл дараахыг агуулж болно:
set "https_proxy=http://domain%%5Cuser:pass%%[email protected]:8080"
Дараа нь эхлүүлэгдэх процесс domain%5Cuser:pass%3F агуулсан URL хүлээж авах ёстой. Давхар хувийн тэмдэг нь batch эх сурвалжид хамаарах бөгөөд клиентийн хадгалсан прокси URL-д хамаарахгүй.
Тухайн batch бичлэгийг .npmrc файл эсвэл программын прокси талбарт хуулах хэрэггүй: эдгээр оролт нь ижил batch задлах шатнаас өнгөрдөггүй. Мөн энэ жишээ нь PowerShell синтакс биш. CALL эсвэл хоёр дахь shell-д зориулж бүтээсэн команд зэрэг өөр бүрхүүл нь дахин нэг задлах шат нэмж болох тул өөрийн гэсэн хяналт шаардлагатай.
SET оноолтыг үзүүлсэн шиг хашилтад хийж, санамсаргүй зай эсвэл shell-ийн мета тэмдэгтүүд санаандгүй командын хэсэг болохгүй байх ёстой. Хашилт дангаараа хувийн өргөтгөлөөс сэргийлэхгүй.
Үр дүнг шалгахдаа нууц үгтэй URL-ыг хуваалцсан бүртгэл рүү хэвлэхийн оронд хүлээгдэж буй кодчилолыг засварласан дүрслэлтэй харьцуул. Shell escape засвар нь нэвтрэх мэдээллийг хадгалдаг; клиентийн өмнө нь дэмжээгүй нэвтрэлтийн схемыг сонгодоггүй.