Re: Об одной малоизвестной уязвимости в веб сайтах

S.A.N nginx-forum at nginx.us
Tue Jun 17 22:05:15 UTC 2014


Валентин Бартенев Wrote:
-------------------------------------------------------
> Как уже неоднократно в этой ветке говорилось, nginx в параметрах
> HTTP_* пишет
> ровно то, что от него требуется: заголовки, пришедшие от клиента, в
> том виде,
> в котором они получены.

Nginx так и должен делать, если запрос валидный, а инвалидные запросы на
бекенд передавать не имеет никакого смысла, они не несут в себе полезной
нагрузки (payload) для бекенда.
По этому, мы разработчики бекенда хотели бы чтобы Nginx не передавал нам
инвалидные запросы, а отдавал 400 статус.

Немного позволю себе лирики, надеюсь никто не обидеться.
Слепое выполнения протокола CGI 1.1 для инвалидных запросов, напоминает
анегдот:
Когда маленькую девочку оставили одну дома и дали указания чужим людям двери
не открывать.
В квартире начался пожар, приехали пожарные стучат в двери, но девочка
утверждает, что двери чужим людям нельзя открывать, потому что были такие
указания )
Самое удивительное что переубедить девочку нельзя, она уверена в своей
правоте, вить указаний открывать двери пожарным не было, то что пожарным
тушить пожар из окна улицы сложней и накладней, по мнению девочки это
проблема пожарных, если они пожарные хреновые специалисты им уже не помочь.
Даже не знаю кто виноват, родители девочки что не дали указания что делать
при пожаре (нет указаний в CGI 1.1 при не соответствии host и absolute uri)
или пожарные не умеют быстро переубеждать.

Мораль этой байки такова - при возникновении исключительной ситуации, когда
нет указаний как поступать в этой ситуации, нужно руководствоватся общим
правилом поведения в исключительных ситуациях, они гласят - нужно убегать,
т.е выбрасывать эксепшин, в нашем случаи это выдать 400 статус и завершить
запрос.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,246086,250962#msg-250962



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