Я использую 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 таким образом. Используется только в качестве примера хранения конфиденциальных файлов вне корня документа.