Запазване на прокси бисквитка в заявката CONNECT
Използвайте отделния интерфейс за прокси заглавки на libcurl за дефинирано от доставчика влизане през CONNECT, вместо да третирате бисквитка на местоназначението като прокси удостоверяване.
Някои прокси продукти дефинират поток за влизане, който предоставя бисквитка или токен за следващи прокси заявки. Ако този токен трябва да се появи в CONNECT, дръжте го отделно от бисквитките, предназначени за уебсайта в тунела.
libcurl предоставя отделен списък с персонализирани заглавки за проксито. В вече инициализирано C приложение фрагмент от конфигурацията може да изглежда така:
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);Това е подходящо само когато документираният протокол за влизане на проксито изисква тази заглавка. Проверете резултатите от разпределението и опциите в околния код, задръжте списъка до завършване на прехвърлянето, след което изчистете или заменете указателя на манипулатора, преди да освободите списъка.
При отделна обработка на заглавките libcurl изпраща прокси списъка в CONNECT, а списъка на местоназначението в заявката в установения тунел. Така проксито получава токена на доставчика, без този токен да става бисквитка на уебсайта. Това разделяне е по подразбиране от libcurl 7.42.1; явната опция прави предвиденото поведение видимо.
Бисквитената банка на браузъра е друг механизъм
Активирането на машината за бисквитки на libcurl или задаването на бисквитка за местоназначението не възпроизвежда автоматично собствения прокси процес на влизане на браузъра. CONNECT се случва преди HTTPS обмена с местоназначението. Определете действителните изисквания на продукта, вместо да копирате прихваната бисквитка на сайта във всяка заявка.
Ако проксито използва стандартно удостоверяване за HTTP прокси, използвайте вместо това прокси идентификационните данни на libcurl и поддържаните опции за удостоверяване. 407 с Proxy-Authenticate е различен протокол от HTML страница за влизане, която връща токен за сесия.
Ограничете токена до неговата прокси крайна точка и предвиден срок на живот. При преминаване към друг посредник заменете списъка със заглавки като част от тази промяна на конфигурацията. Общият списък със заглавки на заявката е лошо място за тайна, която принадлежи само на едно прокси.