Скончыце разбор загалоўкаў 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 перад запускам тунельнага пратаколу. Абодва бакі павінны дамовіцца пра мяжу, дзе паток змяняе ролю.