Separe as cabeceiras de proxy de libcurl das cabeceiras do sitio web
Dea a libcurl listas separadas de cabeceiras de proxy e de destino, recoñecendo que o reenvío en texto simple ten un límite de visibilidade distinto.
Para un identificador de libcurl existente, separe explicitamente as listas de cabeceiras de destino e de 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); Manteña vivo o identificador configurado e as listas válidas durante a transferencia. CURLHEADER_SEPARATE distingue as cabeceiras usadas en CONNECT das cabeceiras usadas para a solicitude de destino. Os exemplos antigos de política unificada poden poñer a lista ordinaria nos dous intercambios.
| Ruta da solicitude | Significado das listas separadas |
|---|---|
| HTTPS dentro dun túnel CONNECT ordinario | O intercambio co proxy vai primeiro; despois seguen as cabeceiras HTTP de destino dentro do TLS de destino. |
| Reenvío HTTP simple | O proxy pode ler as cabeceiras de destino, e libcurl pode usar ambas as listas aplicables na única solicitude reenviada. |
Un marcador de enrutamento só para o proxy pertence ao intercambio co proxy. Co reenvío en texto simple, un campo personalizado arbitrario pode chegar á orixe a menos que a disposición de reenvío o xestione; o nome da opción non é garantía de confidencialidade.
Utilice opcións de credenciais compatibles para a autenticación. Para os metadatos definidos polo operador, determine que salto os consome e se se poden reenviar en lugar de poñer un contrasinal nun campo xenérico.
Cando falte un marcador ou pareza filtrarse, identifique a solicitude real que o contén. Unha devolución de chamada de cabeceiras que mostra varios intercambios pode facer que listas correctamente separadas parezan mesturadas.