Zachovanie proxy cookie v požiadavke CONNECT
Použite samostatné rozhranie hlavičiek proxy v libcurl na prihlásenie CONNECT definované dodávateľom, namiesto toho, aby ste cookie cieľa považovali za autentifikáciu proxy.
Niektoré proxy produkty definujú tok prihlásenia, ktorý poskytuje cookie alebo token pre ďalšie požiadavky cez proxy. Ak sa tento token musí objaviť v CONNECT, držte ho oddelene od cookies určených pre web v tuneli.
libcurl poskytuje vyhradený zoznam vlastných hlavičiek pre proxy. V už inicializovanej aplikácii v C môže konfiguračný fragment vyzerať takto:
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);To je vhodné len vtedy, keď dokumentovaný prihlasovací protokol proxy vyžaduje túto hlavičku. Skontrolujte výsledky alokácie a volieb v okolitom kóde, udržujte zoznam, kým sa prenos nedokončí, a potom pred uvoľnením zoznamu vymažte alebo nahraďte ukazovateľ handle.
Pri oddelenom spracovaní hlavičiek posiela libcurl zoznam proxy v CONNECT a zoznam cieľa v požiadavke vnútri vytvoreného tunela. Proxy tak dostane token dodávateľa bez toho, aby sa tento token stal cookie webu. Toto oddelenie je predvolené od libcurl 7.42.1; explicitná voľba zviditeľňuje zamýšľané správanie.
Kôš cookies prehliadača je iný mechanizmus
Zapnutie cookie enginu libcurl alebo nastavenie cookie pre cieľ automaticky nereprodukuje vlastný prihlasovací tok proxy v prehliadači. CONNECT prebieha pred výmenou HTTPS s cieľom. Určite skutočné požiadavky produktu namiesto kopírovania zachytenej cookie webu do každej požiadavky.
Ak proxy používa štandardnú autentifikáciu HTTP proxy, použite namiesto toho prihlasovacie údaje proxy libcurl a podporované možnosti autentifikácie. 407 s Proxy-Authenticate je iný protokol než HTML prihlasovacia stránka vracajúca token relácie.
Obmedzte token na jeho koncový bod proxy a zamýšľanú životnosť. Pri prechode na iného sprostredkovateľa nahraďte zoznam hlavičiek ako súčasť tejto zmeny konfigurácie. Všeobecný zoznam hlavičiek požiadavky je zlé miesto pre tajomstvo, ktoré patrí len jednému proxy.