/var/log/nginx

Pavel V. pavel2000 на ngs.ru
Сб Янв 15 20:34:28 MSK 2011


Здравствуйте, Maxim.

Вы писали 15 января 2011 г., 1:59:56:

> Развёрнутый ответ про симлинки какой-то такой:

> Защита от symlinks сейчас отсутствует во всех http-серверах, ибо 
> сделать ещё правильно можно только через системный вызов openat() 
> либо на уровне операционной системы (mount -o nosymfollow).

> Применяемый в apache и lighttpd lstat() - это плацебо, там race 
> condition между проверкой по lstat() и реальным открытием файла.  
> То же относится к патчу по ссылке выше.

> Если кому-то не лень - можно сделать правильную проверку через 
> openat(), благо он попал в POSIX и стал появляться во всяких 
> операционных системах.  Но надо при этом понимать, что тут ещё и 
> performance tradeoff, минимум один системный вызов на каждый 
> компонент пути, т.е. без реальной нужды это так или иначе 
> использовать не рекомендуется, а в случае реальной нужды - mount 
> -o nosymfollow будет дешевле.

1) Linux не умеет nosymfollow.
2) Иногда симлинки полезны
3) Идеальный мир не существует.

Спасибо за ответ, про race condition я не думал.

-- 
С уважением,
 Pavel                          mailto:pavel2000 at ngs.ru




Подробная информация о списке рассылки nginx-ru