On Friday 10 January 2014 14:06:43 Gena Makhomed wrote: > On 10.01.2014 13:45, Gena Makhomed wrote: > >>>> Кому интересно почитать, подробней вот ссылка. > >>>> http://habrahabr.ru/post/166855/ > > Хотя, есть и более простой вариант, > как на стороне nginx закрыть эту уязвимость с $http_host. > > $host > in this order of precedence: host name from the request line, or host > name from the “Host” request header field, or the server name matching a > request > > Eсли в request line оказывается одно значение $host, > а в “Host” request header field оказывается другое значение, > тогда просто возвращать 400 Bad Request, поскольку от нормального > клиента (браузера и т.п.) такой запрос никакогда придти не может. > > Это формально правильный способ, но менее удобный для разработчиков, > потому что вполне может быть такой вариант, что это default server > и запрос придет вообще без заголовка Host: - тогда в HTTP_HOST > будет пусто и backend скорее всего нормально не отработает. [..]
Единственный правильный способ: пойти в IETF с предложением исправить соответствующие RFC, которые в том числе оговаривают, что следует делать при получении нескольких заголовков Host, ну а потом уже сюда. -- Валентин Бартенев _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
