Zachowywanie pliku cookie proxy w żądaniu CONNECT
Użyj osobnego interfejsu nagłówków proxy w libcurl do logowania CONNECT zdefiniowanego przez dostawcę, zamiast traktować plik cookie miejsca docelowego jako uwierzytelnianie proxy.
Niektóre produkty proxy definiują przepływ logowania, który dostarcza plik cookie lub token dla kolejnych żądań proxy. Jeśli ten token musi pojawić się w CONNECT, trzymaj go oddzielnie od plików cookie przeznaczonych dla witryny wewnątrz tunelu.
libcurl udostępnia dedykowaną listę niestandardowych nagłówków dla proxy. W już zainicjowanej aplikacji C fragment konfiguracji może wyglądać tak:
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);Jest to właściwe tylko wtedy, gdy udokumentowany protokół logowania proxy wymaga tego nagłówka. Sprawdź wyniki alokacji i opcji w otaczającym kodzie, zachowaj listę do zakończenia transferu, a następnie wyczyść lub zastąp wskaźnik uchwytu przed zwolnieniem listy.
Przy osobnym obsługiwaniu nagłówków libcurl wysyła listę proxy w CONNECT, a listę miejsca docelowego w żądaniu wewnątrz ustanowionego tunelu. Dzięki temu proxy otrzymuje token dostawcy, nie czyniąc go plikiem cookie witryny. To rozdzielenie jest domyślne od libcurl 7.42.1; jawna opcja czyni zamierzone zachowanie widocznym.
Słoik plików cookie przeglądarki to inny mechanizm
Włączenie silnika plików cookie libcurl lub ustawienie pliku cookie dla miejsca docelowego nie odtwarza automatycznie własnego przepływu logowania proxy przeglądarki. CONNECT następuje przed wymianą HTTPS z miejscem docelowym. Ustal rzeczywiste wymagania produktu, zamiast kopiować przechwycony plik cookie witryny do każdego żądania.
Jeśli proxy używa standardowego uwierzytelniania proxy HTTP, użyj zamiast tego poświadczeń proxy libcurl i obsługiwanych opcji uwierzytelniania. 407 z Proxy-Authenticate to inny protokół niż strona logowania HTML zwracająca token sesji.
Ogranicz token do jego punktu końcowego proxy i zamierzonego okresu życia. Przechodząc do innego pośrednika, zastąp listę nagłówków jako część tej zmiany konfiguracji. Ogólna lista nagłówków żądania to złe miejsce na sekret należący tylko do jednego proxy.