Oddziel nagłówki proxy libcurl od nagłówków witryny
Daj libcurl osobne listy nagłówków proxy i miejsca docelowego, pamiętając, że przekazywanie zwykłym tekstem ma inną granicę widoczności.
Dla istniejącego uchwytu libcurl jawnie oddziel listy nagłówków miejsca docelowego i proxy:
curl_easy_setopt(handle, CURLOPT_HEADEROPT, (long)CURLHEADER_SEPARATE);
curl_easy_setopt(handle, CURLOPT_PROXYHEADER, proxy_headers);
curl_easy_setopt(handle, CURLOPT_HTTPHEADER, origin_headers); Utrzymuj skonfigurowany uchwyt i prawidłowe listy przy życiu przez czas transferu. CURLHEADER_SEPARATE rozróżnia nagłówki używane w CONNECT od nagłówków używanych w żądaniu do miejsca docelowego. Starsze przykłady jednolitej polityki mogą umieścić zwykłą listę w obu wymianach.
| Ścieżka żądania | Znaczenie oddzielnych list |
|---|---|
| HTTPS w zwykłym tunelu CONNECT | Najpierw odbywa się wymiana z proxy; następnie nagłówki HTTP miejsca docelowego następują wewnątrz TLS miejsca docelowego. |
| Zwykłe przekazywanie HTTP | Proxy może odczytać nagłówki miejsca docelowego, a libcurl może użyć obu odpowiednich list w jednym przekazywanym żądaniu. |
Znacznik routingu przeznaczony tylko dla proxy należy do wymiany z proxy. Przy przekazywaniu zwykłym tekstem dowolne niestandardowe pole może dotrzeć do źródła, chyba że układ przekazywania sobie z nim poradzi; nazwa opcji nie jest gwarancją poufności.
Do uwierzytelniania używaj obsługiwanych opcji poświadczeń. W przypadku metadanych definiowanych przez operatora ustal, który przeskok je zużywa i czy można je przekazywać, zamiast umieszczać hasło w ogólnym polu.
Gdy znacznika brakuje lub wygląda na wyciekający, zidentyfikuj rzeczywiste żądanie, które go zawiera. Wywołanie zwrotne nagłówków pokazujące kilka wymian może sprawić, że poprawnie oddzielone listy będą wyglądać na pomieszane.