duplicate Host header
Maxim Dounin
mdounin на mdounin.ru
Вт Мар 24 12:51:09 UTC 2020
Hello!
On Tue, Mar 24, 2020 at 01:50:17PM +0500, Илья Шипицин wrote:
> вижу 400-ки на вот такое
>
> 2020/03/24 09:43:55 [info] 22318#22318: *514553220 client sent duplicate
> host header: "Host: example.ru <http://diadoc-api.kontur.ru/>", previous
> value: "Host: example.ru" while reading client request headers, client:
> X.X.X.X
>
>
> хост в обоих случаях одинаковый.
> понятно, что, наверное, RFC тут не ночевало. с другой стороны, ну послал
> клиент два раза одинаковый хост. никто ж не умер. может пропускать такие
> запросы ? или есть какой-то риск ?
Есть какой-то риск, даже если хосты строго одинаковые. Например
такой, что "два раза одинаковый хост" - это по RFC то же самое,
что "Host: example.ru, example.ru", что совсем не то же самое, что
"Host: example.ru".
Ну и до кучи, отклонять такие запросы - прямое требованием RFC 7230:
A server MUST respond with a 400 (Bad Request) status code to any
HTTP/1.1 request message that lacks a Host header field and to any
request message that contains more than one Host header field or a
Host header field with an invalid field-value.
Если очень хочется, чтобы "может пропускать", то так было с nginx
0.7.0 и до nginx 1.17.8 включительно. Начиная с nginx 1.17.9
такие запросы отклоняются. Если есть какие-то самописные клиенты,
которые нарушают RFC и шлют несколько заголовков Host - нужно
исправить этих клиентов.
--
Maxim Dounin
http://mdounin.ru/
Подробная информация о списке рассылки nginx-ru