duplicate Host header

Илья Шипицин chipitsine на gmail.com
Вт Мар 24 16:29:28 UTC 2020


выглядит это примерно так.

живешь, живешь, думаешь, что у тебя все ок.
потом обновляешься до 1.17.9, и по логам идут 400-ки.

смотришь в error.log - там duplicate Host header (про который ты ранее и
знать не знал, и без понятия, в чем там вообще прблема, потому что ее нет
никакой)

какая-то абстрактная задача запретить такие хедера, задача ради самой задачи

вт, 24 мар. 2020 г. в 18:56, Илья Шипицин <chipitsine на gmail.com>:

> так а как мы бы узнали, что у нас такое есть. никакого режима "dry run"
>
> вт, 24 мар. 2020 г. в 18:51, Maxim Dounin <mdounin на mdounin.ru>:
>
>> Hello!
>>
>> On Tue, Mar 24, 2020 at 06:27:57PM +0500, Илья Шипицин wrote:
>>
>> > вт, 24 мар. 2020 г. в 17:51, Maxim Dounin <mdounin на mdounin.ru>:
>> >
>> > > 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 mailing list
>> nginx-ru на nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20200324/f74227c6/attachment.htm>


Подробная информация о списке рассылки nginx-ru