ПРОЕКТЫ 


  АРХИВ 


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: чтение чужих файлов.



On Fri, Nov 25, 2011 at 01:46:23PM +0400, Igor Sysoev wrote:
> On Fri, Nov 25, 2011 at 01:42:58PM +0400, Igor Sysoev wrote:
> > On Fri, Nov 25, 2011 at 01:34:18PM +0400, Anton Yuzhaninov wrote:
> > > On 11/25/11 13:25, Igor Sysoev wrote:
> > > > http://httpd.apache.org/docs/2.2/mod/core.html#options
> > > >
> > > > FollowSymLinks
> > > > SymLinksIfOwnerMatch
> > > >
> > > >     This option should not be considered a security restriction,
> > > >     since symlink testing is subject to race conditions that
> > > >     make it circumventable.
> > > >
> > > > Отсюда возникает вопрос: имеет ли смысл тестировать каждый элемент
> > > > пути при каждом запросе, если это не даёт 100% гарантии ?
> > > 
> > > В апаче сначала делают stat, потом open?
> > > 
> > > А если сначала открыть файл, потом сделать fstat(), не позволит ли это 
> > > избежать 
> > > race?
> > 
> > Нет, симлинк можно поставить в середину пути.
> > И O_NOFOLLOW похоже тоже не поможет, потому что:
> > 
> > O_NOFOLLOW
> >     If pathname is a symbolic link, then the open fails.  This is a FreeBSD
> >     extension, which was added to Linux in version 2.1.126.  Symbolic links
> >     in earlier components of the pathname will still be followed.
> 
> Единственная 100% гарантия - mount -o nosymfollow.

Solaris 10 в этмо месте выглядит интереснее:

 O_NOFOLLOW

     If  the  path names a symbolic link, open() fails and sets errno to
     ELOOP.

 O_NOLINKS

     If the link count of the named file is greater than 1, open() fails
     and sets errno to EMLINK.


-- 
Игорь Сысоев
http://sysoev.ru

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.