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