Re: не обрабатывается локейшн

Anton Yuzhaninov citrin на citrin.ru
Чт Май 31 13:35:59 UTC 2012


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