Re: чтение чужих файлов.
Maxim Dounin
mdounin на mdounin.ru
Пт Ноя 25 12:16:49 UTC 2011
Hello!
On Fri, Nov 25, 2011 at 02:58:48PM +0400, Alexandre Snarskii wrote:
> On Fri, Nov 25, 2011 at 02:29:28PM +0400, Igor Sysoev wrote:
> >
> > > PS: от атаки на хардлинках это по любому не защищает.
> >
> > Для создания хардлинка в отличие от симлинка нужны права.
> > Никто не мешает в этом случае просто прочитать нужные файлы.
>
> snar at chumadan:~/public_html>ls -la /usr/local/etc/sasldb2.db
> -rw-r----- 1 cyrus mail 16384 27 сен 11:25 /usr/local/etc/sasldb2.db
> snar at chumadan:~/public_html>id
> uid=1001(snar) gid=20(staff) groups=20(staff),0(wheel)
> snar at chumadan:~/public_html>cat /usr/local/etc/sasldb2.db
> cat: /usr/local/etc/sasldb2.db: Permission denied
> snar at chumadan:~/public_html>ln /usr/local/etc/sasldb2.db image.jpg
> snar at chumadan:~/public_html>ls -la image.jpg
> -rw-r----- 2 cyrus mail 16384 Sep 27 11:25 image.jpg
> snar at chumadan:~/public_html>cat image.jpg
> cat: image.jpg: Permission denied
>
> i.e., у меня прав на чтение этого файла как не было так и нет,
> но (в контексте атаки) nginx этот файл прочитать и выдать сможет.
>
> FreeBSD 8.2-STABLE i386
http://pubs.opengroup.org/onlinepubs/9699919799/functions/link.html
...
The implementation may require that the calling process has
permission to access the existing file.
...
[EACCES]
A component of either path prefix denies search permission, or the
requested link requires writing in a directory that denies write
permission, or the calling process does not have permission to
access the existing file and this is required by the
implementation.
В общем случае - нужно отбирать search permissions на path prefix.
Maxim Dounin
Подробная информация о списке рассылки nginx-ru