Tarpinio serverio slapuko išlaikymas CONNECT užklausoje
Naudokite atskirą libcurl tarpinio serverio antraščių sąsają tiekėjo apibrėžtam CONNECT prisijungimui, o ne traktuokite paskirties slapuką kaip tarpinio serverio autentifikavimą.
Kai kurie tarpinio serverio produktai apibrėžia prisijungimo srautą, kuris pateikia slapuką arba žetoną vėlesnėms tarpinio serverio užklausoms. Jei šis žetonas turi pasirodyti CONNECT, laikykite jį atskirai nuo slapukų, skirtų svetainei tunelio viduje.
libcurl teikia specialų pasirinktinių antraščių sąrašą tarpiniam serveriui. Jau inicializuotoje C programoje konfigūracijos fragmentas gali atrodyti taip:
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);Tai tinka tik tada, kai dokumentuotas tarpinio serverio prisijungimo protokolas reikalauja šios antraštės. Patikrinkite priskyrimo ir parinkčių rezultatus aplinkiniame kode, laikykite sąrašą, kol perdavimas bus baigtas, tada išvalykite arba pakeiskite rankenos rodyklę prieš atlaisvindami sąrašą.
Atskirai apdorojant antraštes, libcurl siunčia tarpinio serverio sąrašą CONNECT metu, o paskirties sąrašą užklausoje nustatytame tunele. Taip tarpinis serveris gauna tiekėjo žetoną, tačiau šis žetonas netampa svetainės slapuku. Šis atskyrimas yra numatytasis nuo libcurl 7.42.1; aiški parinktis padaro numatytą elgseną matomą.
Naršyklės slapukų stiklainis yra kitas mechanizmas
libcurl slapukų variklio įjungimas arba slapuko nustatymas paskirčiai automatiškai neatkuria naršyklės nuosavo tarpinio serverio prisijungimo srauto. CONNECT įvyksta prieš HTTPS mainus su paskirtimi. Nustatykite tikruosius produkto reikalavimus, o ne kopijuokite užfiksuotą svetainės slapuką į kiekvieną užklausą.
Jei tarpinis serveris naudoja standartinį HTTP tarpinio serverio autentifikavimą, vietoj to naudokite libcurl tarpinio serverio prisijungimo duomenis ir palaikomas autentifikavimo parinktis. 407 su Proxy-Authenticate yra kitas protokolas nei HTML prisijungimo puslapis, grąžinantis sesijos žetoną.
Apribokite žetoną jo tarpinio serverio galiniu tašku ir numatytu galiojimo laiku. Pereinant prie kito tarpininko, pakeiskite antraščių sąrašą kaip tos konfigūracijos pakeitimo dalį. Bendras užklausos antraščių sąrašas yra netinkama vieta paslaptims, priklausančioms tik vienam tarpiniam serveriui.