Завършете разбора на CONNECT заглавията преди препращане на клиентския поток
Прокси сървър, който препраща само след реда на заявката, може да изпрати своето Host заглавие към TLS порта на дестинацията.
След реда на CONNECT заявката тези байтове все още принадлежат на проксито:
CONNECT service.example:443 HTTP/1.1\r\n
Host: service.example:443\r\n
User-Agent: example-client\r\n
\r\nПрепращането на Host или User-Agent към порт 443 дава на дестинацията открити текстови заглавия там, където тя очаква TLS. Този провал може да настъпи още преди изборът на шифър да има значение.
- Четете и разбирайте до терминатора на заглавията с празен ред, в рамките на срок за настройка и ограничение за размера на заглавията.
- Приложете удостоверяването на проксито и политиката за дестинация.
- Установете одобрената връзка с целта.
- Изпратете успешния CONNECT отговор и влезте в режим на тунел.
Запазете буферираните байтове след границата за подходящото следващо състояние. Не ги изхвърляйте и не третирайте заглавията на прокси заявката като следваща заявка на сайта.
Клиентът има съответно задължение от страната на отговора: завършете четенето на успешния CONNECT отговор преди стартиране на тунелния протокол. Двете страни трябва да се съгласят за границата, където потокът сменя ролите си.