Разрешения и безопасность для пользователей, загружающих изображения на сайт - PullRequest
3 голосов
/ 30 марта 2012

Я разрабатываю функцию для своего сайта в социальной сети, которая позволяет пользователям загружать фотографии (и более поздние видео), которые затем могут просматривать другие люди. В настоящее время код копирует загруженное изображение из каталога временной загрузки в каталог / media / непосредственно под корнем документа веб-сервера, генерируя для него имя (мы не используем исходное имя файла). Изображение также сохраняется в монго gridfs. Когда приходит запрос на файл изображения, я использую htaccess, чтобы увидеть, существует ли файл - если нет, то URL переписывается в программу PHP, которая получает изображение из mongo, записывает его в свое имя файла в / media / и перенаправляет.

Мой вопрос касается безопасности и соответствующих прав доступа к каталогу в каталоге / media. Разрешения на каталог / media / таковы, что он должен быть доступен для записи с помощью www-данных. Есть ли способ достичь того же эффекта, что и у меня в настоящее время, не имея доступного для записи каталога под моим корнем документа? Я прочитал довольно много постов на SO об этой проблеме, которая, кажется, говорит о разных (хотя, как правило, не конфликтующих) вещах, и я надеялся получить хорошее краткое изложение основных моментов, на которые мне следует обратить внимание.

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

Если вам требуются только ваши PHP-скрипты для загрузки файлов в эту папку (и изменения ее содержимого), вам нужно будет заставить пользователя Apache работать как владелец каталога.чтобы пользователь Apache работал как, используйте:

ps aux | grep apache

в командной строке SSH.Тогда узнайте, что группа пользователей, к которой относится Apache.Как вы сказали, это обычно всегда www-data, но вы всегда можете проверить дважды, чтобы быть уверенным.Как только вы знаете, установите эту группу в качестве владельца вашего каталога:

chgrp -R www-data /path/to/directory
1 голос
/ 30 марта 2012
...