Dokončete analýzu hlaviček CONNECT před předáním klientského streamu
Proxy server, který předává data až po řádku požadavku, může odeslat svou hlavičku Host na TLS port cíle.
Po řádku požadavku CONNECT tyto bajty stále patří proxy:
CONNECT service.example:443 HTTP/1.1\r\n
Host: service.example:443\r\n
User-Agent: example-client\r\n
\r\nPředání Host nebo User-Agent na port 443 předá cíli čitelné hlavičky tam, kde očekává TLS. Tato chyba může nastat ještě předtím, než výběr šifry vůbec začne hrát roli.
- Čtěte a analyzujte až po ukončení hlaviček prázdným řádkem, v rámci lhůty pro nastavení a limitu velikosti hlaviček.
- Aplikujte autentizaci proxy a zásady cíle.
- Navažte schválené spojení s cílem.
- Odešlete úspěšnou odpověď CONNECT a přejděte do režimu tunelu.
Uchovejte načtené bajty za hranicí pro odpovídající další stav. Nezahazujte je ani nepovažujte hlavičky požadavku proxy za pozdější požadavek webu.
Klient má odpovídající povinnost na straně odpovědi: dokončete čtení úspěšné odpovědi CONNECT před zahájením tunelovaného protokolu. Obě strany se musí shodnout na hranici, kde stream mění roli.