Některé proxy produkty definují přihlašovací tok, který poskytuje cookie nebo token pro další požadavky přes proxy. Pokud se tento token musí objevit v CONNECT, držte ho odděleně od cookies určených pro web v tunelu.

libcurl poskytuje vyhrazený seznam vlastních hlaviček pro proxy. V již inicializované aplikaci v C může konfigurační fragment vypadat 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é jen tehdy, když dokumentovaný přihlašovací protokol proxy vyžaduje tuto hlavičku. Zkontrolujte výsledky alokace a voleb v okolním kódu, udržujte seznam, dokud se přenos nedokončí, a poté před uvolněním seznamu vymažte nebo nahraďte ukazatel handle.

Při odděleném zpracování hlaviček posílá libcurl seznam proxy v CONNECT a seznam cíle v požadavku uvnitř navázaného tunelu. Proxy tak obdrží token dodavatele, aniž by se tento token stal cookie webu. Toto oddělení je výchozí od libcurl 7.42.1; explicitní volba zviditelňuje zamýšlené chování.

Sklenice cookies prohlížeče je jiný mechanismus

Zapnutí cookie enginu libcurl nebo nastavení cookie pro cíl automaticky nereprodukuje vlastní přihlašovací tok proxy v prohlížeči. CONNECT probíhá před výměnou HTTPS s cílem. Určete skutečné požadavky produktu, místo abyste kopírovali zachycenou cookie webu do každého požadavku.

Pokud proxy používá standardní autentizaci HTTP proxy, použijte místo toho přihlašovací údaje proxy libcurl a podporované možnosti autentizace. 407 s Proxy-Authenticate je jiný protokol než HTML přihlašovací stránka vracející token relace.

Omezte token na jeho koncový bod proxy a zamýšlenou životnost. Při přechodu na jiného prostředníka nahraďte seznam hlaviček jako součást této změny konfigurace. Obecný seznam hlaviček požadavku je špatné místo pro tajemství, které patří jen jednomu proxy.

Související články