Ինչու է curl-ը անտեսում HTTP_PROXY-ն
curl-ի միտումնավոր HTTP_PROXY բացառությունը, արձանագրություններին հատուկ փոփոխականները, ALL_PROXY-ն և միջավայրով կանխատեսելի պրոքսի փորձարկումը։
HTTP նպատակակետերի համար սահմանեք փոքրատառ http_proxy-ն։ curl-ը միտումնավոր անտեսում է մեծատառ HTTP_PROXY-ն։ POSIX հրամանային միջավայրում՝
http_proxy=http://127.0.0.1:8080 curl http://example.com/
https_proxy=http://127.0.0.1:8080 curl https://example.com/Այս վերագրումները գործում են միայն անմիջապես հաջորդող հրամանի համար։ Օրինակի լսող հասցեն փոխարինեք ձեր պրոքսիով․ հանրային վերջնակետերը համեմատելու համար թեկնածու ընտրեք HTTP պրոքսիների ցանկից։ https_proxy փոփոխականը ընտրում է HTTPS նպատակակետերի երթուղին․ http:// պարունակող արժեքը դեռ նշանակում է սովորական HTTP պրոքսի, որը կարող է թունել ստեղծել դեպի նպատակակետ։ PowerShell-ը և Windows-ի հրամանային միջավայրերն օգտագործում են վերագրման այլ շարահյուսություն։
Ինչու է վտանգավոր հենց այս մեծատառ գրությունը
CGI միջավայրերը կարող են մուտքային հարցումների վերնագրերը դարձնել մեծատառ HTTP_ փոփոխականներ։ Ուստի Proxy անունով վերնագիրը կարող է դառնալ HTTP_PROXY։ Դրան որպես ելքային կապերի կարգավորում վստահելը հարցման տվյալներին թույլ կտար ընտրել պրոքսին։ curl-ի փոքրատառերի պահանջը խուսափում է այս համապատասխանեցումից․ բացառությունը նույն կերպ չի կիրառվում HTTPS-ի և այլ արձանագրությունների փոփոխականների նկատմամբ։
Եթե փոփոխականը փոխելը չի փոխում երթուղին
Նախ փնտրեք արձանագրությանը հատուկ փոփոխականը, ապա պահուստային ALL_PROXY-ն։ Համապատասխան NO_PROXY կանոնը կարող է շրջանցել պրոքսին։ Փոքրատառ տարբերակներն ու մրցակցող սահմանումները նույնպես կարևոր են։ Unix-ի նման հրամանային միջավայրի այս ցիկլը հայտնում է միայն առկայությունը՝ չտպելով արժեքներ, որոնք կարող են պարունակել մուտքի տվյալներ։
for name in http_proxy HTTP_PROXY https_proxy HTTPS_PROXY all_proxy ALL_PROXY no_proxy NO_PROXY; do
if printenv "$name" >/dev/null; then
printf '%s is set\n' "$name"
fi
doneԹվարկված սահմանումները ստուգեք տեղային եղանակով։ Եթե որևէ մեկը կրկին հայտնվում է, ստուգեք գործարկող հրամանային միջավայրի, ծառայության, IDE-ի, կոնտեյների կամ CI-ի կարգավորումները։ Առկայությունը նշում է հնարավոր մուտքերը, ոչ թե այն, թե որ արժեքն է գերակայել։
Մեկ հարցումն այս պրոքսի ընտրություններից մեկուսացնելու համար նշեք և՛ վերջնակետը, և՛ դատարկ շրջանցման ցանկը։
curl --proxy http://127.0.0.1:8080 --noproxy '' --connect-timeout 5 --max-time 15 --verbose https://example.com/Ուղիղ կապով համեմատության համար, եթե այն թույլատրված է՝
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/Այս հրամանները օգնում են ժառանգված երթուղին տարբերել կապի խափանումից։ Միջավայրի այլ կարգավորումներ փոխելուց առաջ փուլ առ փուլ կարդացեք պրոքսիի փորձարկման արդյունքները։ curl-ի փոփոխականների կանոնները կիրառեք curl-ի նկատմամբ․ հավելվածի սեփական գործարկման միջավայրը կարող է պրոքսիները հայտնաբերել և համադրել այլ կերպ։