Odvojite libcurlova proxy zaglavlja od zaglavlja web-mjesta
Dajte libcurlu odvojene popise proxy i odredišnih zaglavlja, uz uvažavanje da prosljeđivanje čistim tekstom ima drugačiju granicu vidljivosti.
Za postojeći libcurl ručicu, eksplicitno odvojite popise odredišnih i proxy zaglavlja:
curl_easy_setopt(handle, CURLOPT_HEADEROPT, (long)CURLHEADER_SEPARATE);
curl_easy_setopt(handle, CURLOPT_PROXYHEADER, proxy_headers);
curl_easy_setopt(handle, CURLOPT_HTTPHEADER, origin_headers); Držite konfiguriranu ručicu i važeće popise živima tijekom prijenosa. CURLHEADER_SEPARATE razlikuje zaglavlja koja se koriste na CONNECT od zaglavlja koja se koriste za zahtjev prema odredištu. Stariji primjeri objedinjene politike mogu staviti obični popis u obje razmjene.
| Put zahtjeva | Značenje odvojenih popisa |
|---|---|
| HTTPS unutar običnog CONNECT tunela | Prvo dolazi razmjena s proxyjem; zatim HTTP zaglavlja odredišta slijede unutar TLS-a odredišta. |
| Obično HTTP prosljeđivanje | Proxy može čitati odredišna zaglavlja, a libcurl može koristiti oba primjenjiva popisa na jednom proslijeđenom zahtjevu. |
Marker usmjeravanja samo za proxy pripada razmjeni s proxyjem. Kod prosljeđivanja čistim tekstom, proizvoljno prilagođeno polje može doći do izvora osim ako se aranžman prosljeđivanja njime bavi; naziv opcije nije jamstvo povjerljivosti.
Koristite podržane opcije vjerodajnica za autentifikaciju. Za metapodatke koje definira operator, utvrdite koji hop ih troši i smiju li se proslijediti umjesto stavljanja lozinke u generičko polje.
Kada marker nedostaje ili izgleda da curi, identificirajte stvarni zahtjev koji ga sadrži. Povratni poziv zaglavlja koji prikazuje nekoliko razmjena može učiniti da ispravno odvojeni popisi izgledaju pomiješano.