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