Одвојите прокси заглавља libcurl од заглавља веб-сајта
Дајте libcurl одвојене листе прокси и одредишних заглавља, прихватајући да прослеђивање чистим текстом има другачију границу видљивости.
За постојећу ручку libcurl, експлицитно одвојте листе одредишних и прокси заглавља:
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); Држите конфигурисану ручку и важеће листе живим током преноса. CURLHEADER_SEPARATE разликује заглавља која се користе на CONNECT од заглавља која се користе за захтев према одредишту. Старији примери обједињене политике могу ставити обичну листу у оба размена.
| Путања захтева | Значење одвојених листа |
|---|---|
| HTTPS унутар обичног CONNECT тунела | Прво долази размена са проксијем; затим HTTP заглавља одредишта следе унутар TLS-а одредишта. |
| Обично HTTP прослеђивање | Прокси може да чита заглавља одредишта, а libcurl може да користи обе применљиве листе на једном прослеђеном захтеву. |
Маркер усмеравања само за прокси припада размени са проксијем. Код прослеђивања чистим текстом, произвољно прилагођено поље може да дође до извора осим ако се распоред прослеђивања њиме бави; назив опције није гаранција поверљивости.
Користите подржане опције акредитива за аутентификацију. За метаподатке које дефинише оператер, утврдите који хоп их троши и смеју ли се проследити уместо да ставите лозинку у генеричко поље.
Када маркер недостаје или изгледа да цури, идентификујте стварни захтев који га садржи. Повратни позив заглавља који приказује неколико размена може учинити да исправно одвојене листе изгледају помешано.