ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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@xxxxxxxxx
  • Subject: Re: не обрабатывается локейшн
  • From: Anton Yuzhaninov <citrin@xxxxxxxxx>
  • Date: Thu, 31 May 2012 17:35:59 +0400
  • In-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


 




Copyright © Lexa Software, 1996-2009.