Wêrom curl HTTP_PROXY negearret
Begryp de opsetlike HTTP_PROXY-útsûndering fan curl, protokolspesifike fariabelen, ALL_PROXY en in foarsisbere proxytest mei omjouwingsfariabelen.
Stel foar HTTP-bestimmingen http_proxy mei lytse letters yn. curl negearret mei opsetsin HTTP_PROXY mei haadletters. Yn in POSIX-shell:
http_proxy=http://127.0.0.1:8080 curl http://example.com/
https_proxy=http://127.0.0.1:8080 curl https://example.com/Dizze tawizingen jilde allinnich foar it kommando dat der fuort op folget. Ferfang it foarbyld fan it lústerpunt troch dyn proxy; kies foar in ferliking fan iepenbiere einpunten in kandidaat út de list mei HTTP-proxy's. De fariabele https_proxy kiest in rûte nei HTTPS-bestimmingen; in wearde mei http:// betsjut noch hieltyd in gewoane HTTP-proxy dy't in tunnel nei de bestimming meitsje kin. PowerShell en Windows-kommandoshells brûke in oare tawizingssyntaksis.
Wêrom krekt dizze skriuwwize mei haadletters gefaarlik is
CGI-omjouwings kinne ynkommende fersykkoppen omsette yn HTTP_-fariabelen mei haadletters. In fersykkop mei de namme Proxy kin dêrtroch HTTP_PROXY wurde. Dy as konfiguraasje foar útgeande ferbiningen fertrouwe soe fersykgegevens in proxy kieze litte. De eask fan curl om lytse letters foarkomt dy ôfbylding; de útsûndering jildt net op krekt deselde wize foar HTTPS en oare protokolfariabelen.
As it feroarjen fan de fariabele de rûte net feroaret
Sykje earst nei in protokolspesifike fariabele en dêrnei nei de weromfal ALL_PROXY. In passende NO_PROXY-regel kin de proxy omsile. Farianten mei lytse letters en konkurrearjende definysjes dogge der ek ta. Dizze lus foar in Unix-eftige shell meldt allinnich oanwêzigens sûnder wearden ôf te printsjen dy't oanmeldgegevens befetsje kinne:
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
doneBesjoch de neamde definysjes lokaal. As ien weromkomt, kontrolearje dan de konfiguraasje fan de startende shell, tsjinst, IDE, kontener of CI. Oanwêzigens wiist op mooglike ynfier; it seit net hokker wearde foarrang krige.
Om ien fersyk fan dy proxykar ôf te sûnderjen, jou sawol it einpunt as in lege omsyllist op:
curl --proxy http://127.0.0.1:8080 --noproxy '' --connect-timeout 5 --max-time 15 --verbose https://example.com/Foar in tastiene direkte ferliking:
curl --noproxy '*' --connect-timeout 5 --max-time 15 --verbose https://example.com/Dizze kommando's helpe in oerurven rûte fan in ferbiningsflater te ûnderskieden. Lês de resultaten fan de proxytest stap foar stap foardatst mear omjouwingsynstellingen feroarest. Pas de fariabeleregels fan curl op curl ta; de eigen útfieromjouwing fan in applikaasje kin proxy's oars fine en gearfoegje.