nginx-1.3.1

ruv nginx-forum at nginx.us
Mon Sep 17 15:19:02 UTC 2012


День добрый!

> > >     *) Безопасность: теперь nginx/Windows игнорирует точку в конце
> > >        компонента URI и не разрешает URI, содержащие
> > > последовательность ":$".
> 
> Да, это связано именно с этим изменением.  Под windows точка в 
> конце любого имени файла/каталога - не значащая, и такие uri нужно 
> либо отвергать, либо нормализовывать.  В противном случае имеем 
> возможность обхода ограничений доступа.  До 1.3.1 делалось 
> нормализация только для последнего компонента пути, сейчас - для 
> всех.

Дело еще в том, что ведь далеко не каждый URI отображается на файловую
систему.
Поэтому, я думаю, при передаче бэкенду допустимо проводить нормализацию
только если специально указано в конфиге (как например merge_slashes).
Понимаю, тут возникает трудность в реализации. В location ведь сейчас
сопоставляется нормализованный URI.  Может быть тогда эту нормализацию тоже
опцией отключать (будет полная аналогия merge_slashes)?


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

Но, в таком случае не подменяется часть URI запроса, соответствующая
location.  И тоже получается несовместимость — придется править код на
бэкендах, появится лишняя связаность и зависимость...

--
Ruvim

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



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