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
Форумы портала PHP.SU :: Версия для печати :: Мандатный доступ к изображения средствами php
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Мандатный доступ к изображения средствами php

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

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

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

Хотелось бы увидеть хорошую схему для решения этой задачи или готовый пример.
2. mshdn - 23 Августа, 2011 - 21:20:16 - перейти к сообщению
Не очень понятна проблема - любая галерея хранит т файлы-картинки на сервере, причем в произвольной папке своего домена. Организуется
таблица базы данных юзеров
таблица файлов-имен.
Доступ юзера к своим фото после авторизации через запрос к таблице файлов с фильтром по id юзера. Каждый видит только свои фото.
3. energ - 23 Августа, 2011 - 21:57:46 - перейти к сообщению
а чем причина эта обычная система соц сети я например реализовывал подобное так для каждого нового пользователя создаеться папка с его id в базе в ней все его параметы, настройки, файлы и соотвецтвенно фото, на каждого авторизованого пользователя вешаеться кука в которой указываеться его id (можно в зашифрованом виде), далее посредствам основного скрипта выдаеться та папка к которой пользователь принадлежит а точнее его Id Улыбка Ну вот и все в целом, ты делаешь возможным редактирование только данный в своей папке и если нужно даше возможность только смотреть фотки или файлы других пользователей
4. illy - 23 Августа, 2011 - 22:05:32 - перейти к сообщению
Да. Всё гениальное просто Улыбка
5. shearin - 14 Сентября, 2011 - 18:00:54 - перейти к сообщению
[quote=energ][/quote]

В вашем случае я так понимаю получив ссылку, любой может по ней посмотреть фотографии. Ну или найти перебором их, я правильно понимаю?
Если есть, то хотелось бы ссылки на конкретные примеры и описания систем.
6. Viper - 15 Сентября, 2011 - 07:15:21 - перейти к сообщению
shearin пишет:
В вашем случае я так понимаю получив ссылку, любой может по ней посмотреть фотографии. Ну или найти перебором их, я правильно понимаю?
правильно. Но для этого вы можете проверить права доступа юзера к изображению/папке и всех левых откидывать.
7. topy - 15 Сентября, 2011 - 12:33:15 - перейти к сообщению
energ, извините, но слишком уж много http://tsya[dot]ru

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

Ну я так понимаю, чтобы организовать проверку прав пользователя с последующей выдачей картинки, нужно иметь скрипт которые будет производить readfile("картинка выше www root") и отдавать её меняя http заголовок. Или есть варианты? И не будет ли слишком накладко использовать readfile ?
9. Stierus - 15 Сентября, 2011 - 17:42:31 - перейти к сообщению
если вы не хотите выдавать картинку по прямой ссылке и при этом не хотите отдавать их через php-скрипт (что логично). В nginx, например, можно настроить поведение в зависимости от куки. Например, если нет куки или она не соответствует какому-то правилу - показать 404. Читайте, думайте (каким алгоритмом можно в куке показать, к чему есть доступ, а к чему нет) и все у вас получится Улыбка

ps
Если картинок не много - вполне можно и с помощью скрипта его отдавать, если же их много - лучше погуглите и разберитесь с настройками nginx
10. shearin - 17 Сентября, 2011 - 21:44:27 - перейти к сообщению
Stierus пишет:
если вы не хотите выдавать картинку по прямой ссылке и при этом не хотите отдавать их через php-скрипт (что логично). В nginx, например, можно настроить поведение в зависимости от куки. Например, если нет куки или она не соответствует какому-то правилу - показать 404. Читайте, думайте (каким алгоритмом можно в куке показать, к чему есть доступ, а к чему нет) и все у вас получится Улыбка

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

О, то что нужно Улыбка Благодарю
11. caballero - 17 Сентября, 2011 - 22:27:12 - перейти к сообщению
То что нужно - это хранить картинки в базе данных и отдавать скриптом. Все вопросы решаются автоматически. Так делает например SharePoint Server
12. Мелкий - 17 Сентября, 2011 - 22:35:12 - перейти к сообщению
caballero пишет:
это хранить картинки в базе данных

сам бинарник? блобом?! Не понял
13. caballero - 17 Сентября, 2011 - 22:43:09 - перейти к сообщению
Цитата:
сам бинарник? блобом?!

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

Кстати БД гораздо бсчтрее ворочает файлами чем файловая системма
единстенный минус - грузит проц когда скриптом отдает
14. Мелкий - 17 Сентября, 2011 - 23:04:28 - перейти к сообщению
Ох, какой кошмар. Бедная СУБД.

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

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

В общем, удачи вам встретить нагруженный проект.
15. caballero - 17 Сентября, 2011 - 23:13:58 - перейти к сообщению
Вы думаете файловая системма быстрее найдет файл среди тысяч?

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

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

 

Powered by ExBB FM 1.0 RC1