Pse curl e shpërfill HTTP_PROXY
Përjashtimi i qëllimshëm i curl për HTTP_PROXY, ndryshoret sipas protokollit, ALL_PROXY dhe një provë e parashikueshme e ndërmjetësit përmes mjedisit.
Për destinacione HTTP, caktoni http_proxy me shkronja të vogla. curl e shpërfill qëllimisht HTTP_PROXY me shkronja të mëdha. Në një shell 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/Këto caktime vlejnë vetëm për komandën që vjen menjëherë pas tyre. Zëvendësoni adresën dëgjuese të shembullit me ndërmjetësin tuaj; për të krahasuar pika fundore publike, zgjidhni një kandidat nga lista e ndërmjetësve HTTP. Ndryshorja https_proxy zgjedh rrugën për destinacione HTTPS; një vlerë me http:// ende nënkupton një ndërmjetës të zakonshëm HTTP që mund të krijojë tunel drejt destinacionit. PowerShell dhe shell-et e komandave të Windows përdorin sintaksë tjetër caktimi.
Pse pikërisht kjo formë me shkronja të mëdha është e rrezikshme
Mjediset CGI mund t’i kthejnë titujt e kërkesave hyrëse në ndryshore HTTP_ me shkronja të mëdha. Një titull me emrin Proxy mund të bëhet kështu HTTP_PROXY. Besimi tek ai si konfigurim i lidhjeve dalëse do t’u lejonte të dhënave të kërkesës të zgjidhnin ndërmjetësin. Kërkesa e curl për shkronja të vogla e shmang këtë përputhje; përjashtimi nuk zbatohet njësoj për HTTPS dhe ndryshoret e protokolleve të tjera.
Nëse ndryshimi i ndryshores nuk ndryshon rrugën
Kërkoni së pari një ndryshore të posaçme për protokollin, pastaj alternativën ALL_PROXY. Një rregull NO_PROXY që përputhet mund ta anashkalojë ndërmjetësin. Rëndësi kanë edhe variantet me shkronja të vogla dhe përkufizimet konkurruese. Ky cikël për shell të tipit Unix raporton praninë pa shtypur vlera që mund të përmbajnë kredenciale:
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
doneShqyrtoni lokalisht përkufizimet e renditura. Nëse njëri rishfaqet, kontrolloni konfigurimin e shell-it nisës, shërbimit, IDE-së, kontejnerit ose CI-së. Prania tregon hyrje të mundshme; nuk tregon cila vlerë mori përparësi.
Për të izoluar një kërkesë nga këto zgjedhje ndërmjetësi, jepni si pikën fundore, ashtu edhe një listë bosh anashkalimi:
curl --proxy http://127.0.0.1:8080 --noproxy '' --connect-timeout 5 --max-time 15 --verbose https://example.com/Për një krahasim të drejtpërdrejtë, kur lejohet:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/Këto komanda ndihmojnë të dalloni një rrugë të trashëguar nga një dështim lidhjeje. Lexoni rezultatet e provës së ndërmjetësit fazë pas faze para se të ndryshoni cilësime të tjera të mjedisit. Rregullat e ndryshoreve të curl zbatojini për curl; mjedisi i ekzekutimit të vetë aplikacionit mund t’i zbulojë dhe bashkojë ndërmjetësit ndryshe.