Назад | Перейти на главную страницу

Где хранить изображения, загружаемые пользователями

Я использую Restlet в качестве серверной части, пытаясь создать небольшое веб-приложение.

Я разрешаю пользователям загружать изображения своего профиля, но не знаю, где их хранить. Google говорит мне хранить его в файловой системе, что имеет смысл.

Так следует ли мне хранить их в общедоступной веб-папке, в которой находится веб-интерфейс? Но разве это не позволит людям легко получить доступ ко всем изображениям профиля?

Если я не храню изображения в общедоступном веб-каталоге, где мне их хранить и как их защитить?

Мой сервер - это сервер Ubuntu 12.04, заранее спасибо

Вы, безусловно, можете сохранить их в подпапке в общей папке и отключить просмотр папок. Затем выставляйте изображения только в вашем приложении.

Вы можете хранить файлы вне корня документа и включать их в серверную часть с относительным путем. Обычно веб-сервер запрещает доступ к родительскому каталогу docroot, но серверные службы смогут получить к ним доступ.

т.е. если вы используете:

DocRoot = /var/www
Images = /var/profile-pics

Это не будет работать:

http://www.yourdomain.com/../profile-pics/David.JPG

Это будет работать:

<?php include('../profile-pics/David.JPG'); ?>

Примечание: PHP используется в качестве примера, и, конечно же, вы не можете включать jpeg таким образом. Используется только в качестве примера хранения конфиденциальных файлов вне корня документа.