Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Мандатный доступ к изображения средствами php

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
shearin
Отправлено: 20 Августа, 2011 - 19:47:01
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Добрый день господа, задача такая:
Есть пользователи которые могут загружать изображения на сервер, которые в последствии будут использованы и удалены.
— Пользователь авторизуется
— Пользователь загружается свои изображения становясь их владельцем (условно).
— Владелец должен иметь доступ к своим изображениям до момента их использования и удаления.
— Пользователь имеет доступ только к тем изображениям, которые принадлежат ему и ни чьим другим.
— Не авторизованные системой пользователи вообще не имеют доступа к изображениям.

Вопрос в том как реализовать эту задачу средствами php на стороне сервера.
Хранить изображения выше webroot можно, но как их потом отдавать конкретным пользователям для удобной работы(редактирования например) ?

Хотелось бы увидеть хорошую схему для решения этой задачи или готовый пример.
 
 Top
mshdn
Отправлено: 23 Августа, 2011 - 21:20:16
Post Id


Гость


Покинул форум
Сообщений всего: 90
Дата рег-ции: Окт. 2008  


Помог: 0 раз(а)




Не очень понятна проблема - любая галерея хранит т файлы-картинки на сервере, причем в произвольной папке своего домена. Организуется
таблица базы данных юзеров
таблица файлов-имен.
Доступ юзера к своим фото после авторизации через запрос к таблице файлов с фильтром по id юзера. Каждый видит только свои фото.
 
 Top
energ
Отправлено: 23 Августа, 2011 - 21:57:46
Post Id



Гость


Покинул форум
Сообщений всего: 102
Дата рег-ции: Окт. 2010  


Помог: 0 раз(а)




а чем причина эта обычная система соц сети я например реализовывал подобное так для каждого нового пользователя создаеться папка с его id в базе в ней все его параметы, настройки, файлы и соотвецтвенно фото, на каждого авторизованого пользователя вешаеться кука в которой указываеться его id (можно в зашифрованом виде), далее посредствам основного скрипта выдаеться та папка к которой пользователь принадлежит а точнее его Id Улыбка Ну вот и все в целом, ты делаешь возможным редактирование только данный в своей папке и если нужно даше возможность только смотреть фотки или файлы других пользователей
 
 Top
illy
Отправлено: 23 Августа, 2011 - 22:05:32
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


Помог: 28 раз(а)




Да. Всё гениальное просто Улыбка


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
shearin
Отправлено: 14 Сентября, 2011 - 18:00:54
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




[quote=energ][/quote]

В вашем случае я так понимаю получив ссылку, любой может по ней посмотреть фотографии. Ну или найти перебором их, я правильно понимаю?
Если есть, то хотелось бы ссылки на конкретные примеры и описания систем.
 
 Top
Viper
Отправлено: 15 Сентября, 2011 - 07:15:21
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




shearin пишет:
В вашем случае я так понимаю получив ссылку, любой может по ней посмотреть фотографии. Ну или найти перебором их, я правильно понимаю?
правильно. Но для этого вы можете проверить права доступа юзера к изображению/папке и всех левых откидывать.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
topy
Отправлено: 15 Сентября, 2011 - 12:33:15
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Февр. 2011  


Помог: 0 раз(а)




energ, извините, но слишком уж много http://tsya[dot]ru

По теме: есть много вариантов как можно все это реализовать, можно даже файлы в базе хранить.
Или вы боитесь что кто-то сможет посмотреть прямую ссылку на фото? Ну так сделайте папку-хеш, название фотки-хеш и угадать уже будет трудно. Только прямая ссылка сможет спасти, но и тут можно смотреть на реферера и отсеивать тех, кто пришел не со своего домена..
Короче способов много!
 
 Top
shearin
Отправлено: 15 Сентября, 2011 - 17:27:29
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Viper пишет:
правильно. Но для этого вы можете проверить права доступа юзера к изображению/папке и всех левых откидывать.

Ну я так понимаю, чтобы организовать проверку прав пользователя с последующей выдачей картинки, нужно иметь скрипт которые будет производить readfile("картинка выше www root") и отдавать её меняя http заголовок. Или есть варианты? И не будет ли слишком накладко использовать readfile ?

(Отредактировано автором: 15 Сентября, 2011 - 17:30:13)

 
 Top
Stierus Супермодератор
Отправлено: 15 Сентября, 2011 - 17:42:31
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




если вы не хотите выдавать картинку по прямой ссылке и при этом не хотите отдавать их через php-скрипт (что логично). В nginx, например, можно настроить поведение в зависимости от куки. Например, если нет куки или она не соответствует какому-то правилу - показать 404. Читайте, думайте (каким алгоритмом можно в куке показать, к чему есть доступ, а к чему нет) и все у вас получится Улыбка

ps
Если картинок не много - вполне можно и с помощью скрипта его отдавать, если же их много - лучше погуглите и разберитесь с настройками nginx
 
My status
 Top
shearin
Отправлено: 17 Сентября, 2011 - 21:44:27
Post Id


Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Stierus пишет:
если вы не хотите выдавать картинку по прямой ссылке и при этом не хотите отдавать их через php-скрипт (что логично). В nginx, например, можно настроить поведение в зависимости от куки. Например, если нет куки или она не соответствует какому-то правилу - показать 404. Читайте, думайте (каким алгоритмом можно в куке показать, к чему есть доступ, а к чему нет) и все у вас получится Улыбка

ps
Если картинок не много - вполне можно и с помощью скрипта его отдавать, если же их много - лучше погуглите и разберитесь с настройками nginx

О, то что нужно Улыбка Благодарю
 
 Top
caballero
Отправлено: 17 Сентября, 2011 - 22:27:12
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




То что нужно - это хранить картинки в базе данных и отдавать скриптом. Все вопросы решаются автоматически. Так делает например SharePoint Server


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Мелкий Супермодератор
Отправлено: 17 Сентября, 2011 - 22:35:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




caballero пишет:
это хранить картинки в базе данных

сам бинарник? блобом?! Не понял


-----
PostgreSQL DBA
 
 Top
caballero
Отправлено: 17 Сентября, 2011 - 22:43:09
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
сам бинарник? блобом?!

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

Кстати БД гораздо бсчтрее ворочает файлами чем файловая системма
единстенный минус - грузит проц когда скриптом отдает

(Отредактировано автором: 17 Сентября, 2011 - 22:45:02)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Мелкий Супермодератор
Отправлено: 17 Сентября, 2011 - 23:04:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Ох, какой кошмар. Бедная СУБД.

caballero пишет:
Кстати БД гораздо бсчтрее ворочает файлами чем файловая системма

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

В общем, удачи вам встретить нагруженный проект.


-----
PostgreSQL DBA
 
 Top
caballero
Отправлено: 17 Сентября, 2011 - 23:13:58
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Вы думаете файловая системма быстрее найдет файл среди тысяч?

БД в отличие от файловой системмы оптимизорована для быстрого поиска и выдачи данных

Кроме того блобы будут хранится в отдельной таблице а значит никаким каком грузить СУБД не будут пока не будет запрошен собственно файл. А большой файл по любому будет долго передаватся по HTTP. Так что юзер по любому будет смотреть на крутилку пока файл грузится


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB