Termine a análise dos cabeçalhos CONNECT antes de repassar o fluxo do cliente
Um servidor proxy que repassa apenas após a linha de requisição pode enviar seu próprio cabeçalho Host para a porta TLS do destino.
Após a linha de requisição CONNECT, estes bytes ainda pertencem ao proxy:
CONNECT service.example:443 HTTP/1.1\r\n
Host: service.example:443\r\n
User-Agent: example-client\r\n
\r\nEncaminhar Host ou User-Agent para a porta 443 entrega ao destino cabeçalhos em texto simples onde ele espera TLS. Essa falha pode ocorrer antes de a escolha de cifra ter importância.
- Leia e analise até o terminador de cabeçalhos com linha em branco, dentro de um prazo de configuração e um limite de tamanho de cabeçalhos.
- Aplique a autenticação do proxy e a política de destino.
- Estabeleça a conexão de destino aprovada.
- Envie a resposta CONNECT bem-sucedida e entre no modo túnel.
Preserve os bytes armazenados após o limite para o próximo estado adequado. Não os descarte nem trate os cabeçalhos de requisição do proxy como a requisição posterior do site.
O cliente tem uma obrigação correspondente no lado da resposta: termine de ler a resposta CONNECT bem-sucedida antes de iniciar o protocolo tunelizado. Ambas as extremidades devem concordar sobre o limite em que o fluxo muda de papel.