nginx-1.3.1

Maxim Dounin mdounin at mdounin.ru
Mon Sep 17 11:15:43 UTC 2012


Hello!

On Fri, Sep 14, 2012 at 06:42:22PM -0400, ruv wrote:

> День добрый!
> 
> Замечено, что Nginx стал "съедать" точку в конце любого сегмента пути в URL
> при передаче запроса к бэкэнду (версия под Windows). Любая подобная
> модификация запроса ошибочна. Из-за возникшей несовместимости пришлось
> откатиться на более старую версию.
> 
> Возможно, это связано со следующим исправлением:
> 
> > Изменения в nginx 1.3.1                                          
> > 05.06.2012
> > 
> >     *) Безопасность: теперь nginx/Windows игнорирует точку в конце
> >        компонента URI и не разрешает URI, содержащие
> > последовательность ":$".

Да, это связано именно с этим изменением.  Под windows точка в 
конце любого имени файла/каталога - не значащая, и такие uri нужно 
либо отвергать, либо нормализовывать.  В противном случае имеем 
возможность обхода ограничений доступа.  До 1.3.1 делалось 
нормализация только для последнего компонента пути, сейчас - для 
всех.

Если нужно проксировать без нормализации uri (в предположении, что 
бекенд сам справится с этой проблемой, и/или он не на виндах) - 
должно помочь написание директивы proxy_pass без URI, i.e.

    proxy_pass http://backend;

без "/" в конце.

Maxim Dounin



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