Re: чтение чужих файлов: не стоит патчить

Gena Makhomed gmm на csdoc.com
Сб Ноя 26 16:31:39 UTC 2011


On 26.11.2011 13:53, Maxim Dounin wrote:

> Как уже неоднократно говорено, в том числе в этой рассылке,
> варианты приблизительно такие:

> 1. Использовать mount -o nosymfollow.

это сломает механизм атомарных обновлений сайта,
- даже симлинки IfOwnerMatch тоже не будут работать.
фактически нужна была опция nosymfollow_if_owner_not_match

> 2. Сделать и использовать соответствующий флаг для open() в
> операционной системе (a la O_NOFOLLOW_ALL).

здесь тоже будет более интерен флаг O_NOFOLLOW_ANY_IF_OWNER_NOT_MATCH
- нет смысла запрещать пользователю ходить по симлинкам на свои же файлы
внутри сайтов и CMS симлинки могут использоваться, это же POSIX стандарт

возможно имеет смысл попробовать этот вариант добавить в обе системы?

или хотя бы только более простой вариант 
openat(O_NOFOLLOW_IF_OWNER_NOT_MATCH)

> 3. Использовать цепочку из openat(O_NOFOLLOW).
>
> Вариант (3), в принципе, на большинстве операционных систем сейчас
> реализуем.

это будет аналог апачевской директивы Options -FollowSymLinks
что может добавить проблем, если сайт/CMS использует симлинки.

можно ли сделать в nginx корректно работающий в 100% случаев
аналог апачевской директивы "Options SymLinksIfOwnerMatch" ?
такой вариант имхо будет самым корректным для shared hostind`а.

или для этого необходима поддержка в ядре
флага openat(O_NOFOLLOW_IF_OWNER_NOT_MATCH) ?

-- 
Best regards,
  Gena



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