Re: чтение чужих файлов: не стоит патчить
Maxim Dounin
mdounin на mdounin.ru
Сб Ноя 26 11:53:23 UTC 2011
Hello!
On Sat, Nov 26, 2011 at 03:20:51PM +0400, Igor Sysoev wrote:
> On Sat, Nov 26, 2011 at 03:16:27PM +0400, Igor Sysoev wrote:
>
> > Это патч использует realpath(3), а не гипотетический realpath(2)
> > и имеет те же проблемы, что FollowSymLink в Апаче. То есть,
> > 100% защиты не даёт, а даёт лишь иллюзию защищённости.
>
> Впрочем, realpath(2) тоже не поможет, потому что между open(2)
> и realpath(2) есть возможность убрать линк.
Или, наоборот, добавить, если проверка делается до open().
Как уже неоднократно говорено, в том числе в этой рассылке,
варианты приблизительно такие:
1. Использовать mount -o nosymfollow.
2. Сделать и использовать соответствующий флаг для open() в
операционной системе (a la O_NOFOLLOW_ALL).
3. Использовать цепочку из openat(O_NOFOLLOW).
Вариант (3), в принципе, на большинстве операционных систем сейчас
реализуем.
Maxim Dounin
Подробная информация о списке рассылки nginx-ru