Å beholde en proxy-cookie på CONNECT-forespørselen
Bruk libcurls separate proxy-header-grensesnitt for en leverandørdefinert CONNECT-pålogging i stedet for å behandle en destinasjonscookie som proxyautentisering.
Noen proxyprodukter definerer en påloggingsflyt som gir en cookie eller et token for senere proxyforespørsler. Hvis dette tokenet må vises på CONNECT, holder du det adskilt fra cookies beregnet på nettstedet inne i tunnelen.
libcurl tilbyr en dedikert liste med egendefinerte headere for proxyen. I en allerede initialisert C-applikasjon kan et konfigurasjonsutdrag se slik ut:
struct curl_slist *proxy_headers = NULL;
proxy_headers = curl_slist_append(proxy_headers,
"Cookie: ProxySession=REPLACE_WITH_PROXY_TOKEN");
curl_easy_setopt(handle, CURLOPT_PROXYHEADER, proxy_headers);
curl_easy_setopt(handle, CURLOPT_HEADEROPT,
(long) CURLHEADER_SEPARATE);Dette er bare passende når proxyens dokumenterte påloggingsprotokoll krever den headeren. Sjekk resultatene av tildeling og alternativer i den omkringliggende koden, behold listen til overføringen er fullført, og tøm eller erstatt deretter håndtakets peker før listen frigjøres.
Med separat headerhåndtering sender libcurl proxylisten på CONNECT og destinasjonslisten på forespørselen inne i den etablerte tunnelen. Proxyen mottar dermed leverandørens token uten at dette tokenet blir en nettstedscookie. Denne separasjonen er standard fra libcurl 7.42.1; det eksplisitte alternativet gjør den tilsiktede atferden synlig.
En nettleserkrukke for cookies er en annen mekanisme
Aktivering av libcurls cookie-motor eller angivelse av en cookie for destinasjonen gjengir ikke automatisk en nettlesers proprietære proxy-påloggingsflyt. CONNECT skjer før destinasjonens HTTPS-utveksling. Identifiser produktets faktiske krav i stedet for å kopiere en fanget nettstedscookie inn i hver forespørsel.
Hvis proxyen bruker standard HTTP-proxyautentisering, bruk i stedet libcurls proxy-legitimasjon og støttede autentiseringsalternativer. En 407 med Proxy-Authenticate er en annen protokoll enn en HTML-påloggingsside som returnerer et sesjonstoken.
Hold tokenet begrenset til proxy-endepunktet og den tiltenkte levetiden. Når du bytter til en annen mellommann, erstatter du headerlisten som en del av den konfigurasjonsendringen. En generell forespørselsheader-liste er et dårlig sted for en hemmelighet som bare tilhører én proxy.