2013-04-05 3 views
0

В приложении PHP я разрешаю пользователям загружать фотографии. После загрузки пользователя метаданные хранятся в db, а затем изображения сохраняются в каталоге на сервере linux. Я хочу, чтобы эти изображения были доступны для просмотра при вызове через представление, поэтому я могу проверить, что их просматривает правильная сторона. Я не хочу, чтобы кто-нибудь мог просто ввести URL-адрес и просмотреть изображение.Защита изображений и права на файл/каталог разрешений

/site 
    /framework 
    /protected /**My PHP site**/ 
    /www 
     /images /**This is where I am currently storing the images**/ 
  1. Для того, чтобы ограничить просмотр этих изображений мне нужно сделать, чтобы переместить каталог imageswww вне? Если да, то где?
  2. Какие разрешения linux следует указывать в каталоге images?
  3. Для изображений, которые я сохранил в своем db, которым я хочу ограниченный доступ, я использую правила доступа в своей структуре. Могут ли такие правила ограничить доступ к изображениям в данном каталоге?

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

ответ

1

Для всех изображений в этом каталоге, которые должны быть запрещены (они ВСЕ должны быть доступны через скрипт, и ни один из них не будет иметь прямой доступ, т.е. только ваш сервер сможет получить к ним доступ, а у вас есть apache с mod_rewrite) вы можете поместить .htaccess в этом каталоге, как следующее:

deny from all 

Так, чтобы ответить на вопросы по номеру .. ^^

  1. Нет, .htaccess будет заботиться о ней с тем же эффектом.
  2. Для изображений для сервера вам понадобится прочитать (+r).
  3. Структура может иметь что-то подобное, но она не может предотвратить прямую связь, если URL-адрес изображения известен. Выполнение этого с .htaccess или перемещение каталога было бы лучшим выбором.
+1

Предоставление очков одному с меньшим. Информация от вас и Квентина помогла мне дойти до моего решения. Короче, мне удалось переместить папку с изображениями и защитить ее, разорвав изображения через мой php-скрипт. Пока он выглядит и работает по мере необходимости. – enfield

1

Чтобы ограничить просмотр этих изображений, мне нужно переместить каталог изображений за пределы www?

Нет, но это самый безопасный вариант.

Если да, то где?

Anywhere

Какие разрешения линукс следует на каталог картинок?

Минимальный уровень, необходимый для чтения и записи на сервере. Возможно, 700.

Для изображений, которые я сохранил в своем db, которым я хочу ограниченный доступ, я использую правила доступа в своей структуре. Могут ли такие правила ограничить доступ к изображениям в данном каталоге?

Поскольку изображения доступны только через PHP, PHP может добавлять любые auth/authz, которые вам нравятся.

0

Вы можете просто использовать файл .htaccess и ограничить доступ людей к этому каталогу, а также отключить список каталогов на всякий случай.

Смежные вопросы