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

Gena Makhomed gmm на csdoc.com
Вт Ноя 29 11:17:20 UTC 2011


On 29.11.2011 7:58, Dmitry E. Oboukhov wrote:

>>> и если кто-то делает ln -s /path/to name а потом читает name как
>>> статику, он же может сделать:
>>>
>>>      open my $fh, '<', '/path/to';
>>>      print "Content-Type: application/octet-stream\n\n";
>>>      print $_ while<$fh>;
>
>> пользователь не имеет прямого доступа к этим чужим файлам.
>> только nginx и apache. в apache можно закрыть "удобные пути"
>> получения доступа к чужим файлам, а в nginx - нет такого способа.
>
> 1. вебсервер имеет прямой доступ к этим файлам
> 2. вебсервер - разделяем между кучей пользователей
> 3. В апаче нельзя закрыть удобные пути. Вышеприведенный пример - всего
> три строки кода.

CGI-скрипты могут быть или вообще запрещены (сейчас не 1993 год уже)
или могут работать с правами пользователя, а не веб-сервера и поэтому
доступа к чужим файлам получить не смогут, ни по симлинку ни напрямую.

>>> Ну и как закрыть вышеприведенный путь настройкой апача? не давать
>>> пользователю shared-хостинга юзать динамический контент? и сколько
>>> пользователей будет завтра на этом хостинге?

>> наверное этот вопрос про апач Вам следует задать в списке рассылки
>> для пользователей дебиана. думаю, что там есть и те, кто знает ответ
>> на этот Ваш вопрос. в этом списке рассылки по nginx вопросы корректной
>> настройки apache+php для shared hosting`а наверное являются оффтопиком.

> я говорю о том что не имеет смысла закрывать одну из тысяч дырочек в
> решете. если эта проблема насущна, то пользователю shared-хостинга надо
> задуматься над собственным хостингом. благо нынче они дешевые

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

On 29.11.2011 8:02, Dmitry E. Oboukhov wrote:

 > если пользователь сделал 777 на все файлы,
 > то как ему поможет защита от скачивания через симлинки?

он не сможет изменить права доступа к своему домашнему каталогу,
потому что у него нет права записи в каталог /home, потому что
владельцем каталога /home является root:root, права доступа 0755.

-- 
Best regards,
  Gena



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