| Nginx-ru mailing list archive (nginx-ru@sysoev.ru) [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
 Re: не обрабатывается локейшн
 
To: nginx-ru@xxxxxxxxxSubject: Re: не обрабатывается локейшнFrom: Anton Yuzhaninov <citrin@xxxxxxxxx>Date: Thu, 31 May 2012 17:35:59 +0400In-reply-to: <CAFGLPOczXudwaOfKFMx00S=Sp8iKs2g-CX_ajBqzLpi4+qPTJg@mail.gmail.com>References: <CAFGLPOczXudwaOfKFMx00S=Sp8iKs2g-CX_ajBqzLpi4+qPTJg@mail.gmail.com> 
 
On 05/31/12 17:21, Denis Kot wrote:
 
Требудется запретить доступ к любому урлу в котором встречается
/etc/passwd (не спрашивайте зачем, этого захотел клиент)
Nginx стоит древний, 0.6.33. Обновить пока не представляется
возможным, но если придется - сделаем.
пробовал уже по всякому. основная идея:
         location ~* ^.*/etc/passwd.*$
         {
             deny all;
         }
так вот если набрать http://site.ru/etc/passwd, то работает, но если
набрать, например, http://site.ru/ny-wie/mlog.html?screen=etc/passwd
то нифига, пропускается дальше на бекенд и уже бекенд ругается на 404.
Что не так?
 
Аргументы запроса не учитываются при поиске location
Можно попробовать добавить еще
if ($args ~ "/etc/passwd") {
        return 403;
}
Только смысла в этом мало.
Путь к /etc/passwd можно задать кучей разных способов
/etc/passwd /etc//passwd /etc/X11/../passwd /etc/././passwd и т. п. и все это 
регекспами не запретишь.
--
 Anton Yuzhaninov
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru 
 |