Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрет доступа к определённым файлам на сервере, если не хватает прав 
:(
    Опции темы
ruX
Дата 25.5.2009, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 8.9.2006
Где: г.Гатчина

Репутация: 1
Всего: 3



Как осуществяется ограничение прав доступа а ресурсам на сервере?
Допустим, имеется какая-то картинка на сервере. Один юзер копирует адрес на неё другому, но у другого нет прав на просмотр её. Как это реализовать? 
Пропускать вывод изображения(а того хуже если это какой-нить архив на 50 метров) через скрипт - как то не серьёзно. Писать плагин для апача - тоже не интересный вариант.
Больше ничего в голову не приходит. Если я правильно понял - то на сервере по любому логика должна проверять права, иначе никак.

Для начала хотя бы как реализовать примитив: доступ к определённой картинке может иметь только авторизированный пользователь.

Подскажите пожалуйста в какую сторону смотреть?
--------------------
Случайность - внезапно наступившая неизбежность.
PM MAIL WWW ICQ   Вверх
SneG0K
Дата 25.5.2009, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(ruX @  25.5.2009,  19:11 Найти цитируемый пост)
Пропускать вывод изображения(а того хуже если это какой-нить архив на 50 метров) через скрипт - как то не серьёзно.

А файлобменники по твоему как?

Еще как вариант .htaccess
PM WWW Skype   Вверх
enof
Дата 25.5.2009, 20:21 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Цитата(SneG0K @  25.5.2009,  21:16 Найти цитируемый пост)
А файлобменники по твоему как?

ну уж явно не скриптом на пхп отдают.
PM MAIL ICQ Skype   Вверх
ruX
Дата 25.5.2009, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 8.9.2006
Где: г.Гатчина

Репутация: 1
Всего: 3



Цитата(SneG0K @  25.5.2009,  20:16 Найти цитируемый пост)
А файлобменники по твоему как?

Поэтому и спрашиваю smile


Цитата(SneG0K @  25.5.2009,  20:16 Найти цитируемый пост)
Еще как вариант .htaccess

я посмотрел, на сколько я понял можно разве что логин-пароль использовать. Опять же авторизация должна быть на моих скриптах. Если я правильно понял можно написать модуль авторизации, но это уже не так интересно.


Цитата(enof @  25.5.2009,  20:21 Найти цитируемый пост)
ну уж явно не скриптом на пхп отдают.

Тогда стоит посмореть в сторону cgi, например на си?
--------------------
Случайность - внезапно наступившая неизбежность.
PM MAIL WWW ICQ   Вверх
SneG0K
Дата 25.5.2009, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(enof @  25.5.2009,  19:21 Найти цитируемый пост)
ну уж явно не скриптом на пхп отдают. 

А на чем по твоему? Давай не разводить холиваров
PM WWW Skype   Вверх
gta4kv
Дата 25.5.2009, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Цитата

ну уж явно не скриптом на пхп отдают. 

присоединяюсь к предыдущему оратору, небольшому файл хостингу даже нету смысла напрягаться с чем то другим, заголовоки и readfile вполне достаточно.
PM MAIL   Вверх
enof
Дата 25.5.2009, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Решь шла о файлообменниках и соответственно я сразу подумал о больших файлах и огромном количестве пользователей.
Для мелких сервисов согласен с readfile.
PM MAIL ICQ Skype   Вверх
ruX
Дата 26.5.2009, 09:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 8.9.2006
Где: г.Гатчина

Репутация: 1
Всего: 3



Значит вывод: можно пропускать через php readfile?
А как быть например с лимитом времени исполнения, устанавливать принудительно? Ведь канал у юзера может быть очень узкий. И по идее, этот лимит должен зависить от размера файла. Для картинки размером 300кб это одно, для, например, мп3 в 5метров это другое
--------------------
Случайность - внезапно наступившая неизбежность.
PM MAIL WWW ICQ   Вверх
SneG0K
Дата 26.5.2009, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(ruX @  26.5.2009,  08:07 Найти цитируемый пост)
А как быть например с лимитом времени исполнения, устанавливать принудительно?

Угу. Поставь сразу большой лимит, скрипт отработает и завершится... Если это картинки, то можно делать вывод через GDI+
PM WWW Skype   Вверх
bazzjr
Дата 26.5.2009, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 27.12.2007
Где: Россия, Пермь

Репутация: 4
Всего: 6



Цитата(ruX @  25.5.2009,  20:11 Найти цитируемый пост)
Как осуществяется ограничение прав доступа а ресурсам на сервере?Допустим, имеется какая-то картинка на сервере. Один юзер копирует адрес на неё другому, но у другого нет прав на просмотр её. Как это реализовать? Пропускать вывод изображения(а того хуже если это какой-нить архив на 50 метров) через скрипт - как то не серьёзно. Писать плагин для апача - тоже не интересный вариант.Больше ничего в голову не приходит. Если я правильно понял - то на сервере по любому логика должна проверять права, иначе никак.Для начала хотя бы как реализовать примитив: доступ к определённой картинке может иметь только авторизированный пользователь.Подскажите пожалуйста в какую сторону смотреть?



Ну мне так думается все это можно реализовать посредством:

Куки + Сессии + некий идентификатор регистрации(профиля) пользователя

Идея примерно такая...

Каждый раз когда "зарегистрированный" ползователь хочет скачать какой либо файл, то в адресной строке прибавляем некий ID, который позволяет ему скачивание. Если эту ссылку дать другому пользователю, то когда пользователь коннектится, система проверяет адрес, и смотрит тот самый ID, далее проверяет КУКИ, и если все нужные данные совпадают, система дает добро на скачивание или просмотр.

Это сообщение отредактировал(а) bazzjr - 26.5.2009, 10:22
PM MAIL ICQ   Вверх
icewind
Дата 26.5.2009, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 11.4.2009
Где: Ростов-на-Дону

Репутация: 20
Всего: 20



Мне кажется можно обойтись без увеличения временного лимита... И без лишней нагрузки. Можно создать директорию для выдачи. При запросе к скрипту, тот создает в директории выдачи папку, название которой будет содержать  айпишнек (можно ip2long) и timestamp для обеспечения временного лимита и копирует туда нужный файл. Юзера предупредить что ссылка будет активна n часов. Далее сделать маленький скрипт, который будет проверять по названиям в директорий время создания и чистить устаревшие и повесить на крон. Можно таким образом избежать потоковой отдачи файлов средствами php... Естественно это для больших файлов... Картинки (50 - 350kb) можно и потоком отдать...


--------------------
user posted image
PM MAIL Skype   Вверх
gta4kv
Дата 26.5.2009, 10:50 (ссылка)  | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Цитата(enof @ 25.5.2009,  23:05)
Решь шла о файлообменниках и соответственно я сразу подумал о больших файлах и огромном количестве пользователей.
Для мелких сервисов согласен с readfile.

Из личного опыта, 2к уникальных обращений к файлу в течение часа не вызывали у сервера ничего кроме смертной скуки.

Это сообщение отредактировал(а) gta4kv - 26.5.2009, 22:19
PM MAIL   Вверх
ruX
Дата 26.5.2009, 23:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 8.9.2006
Где: г.Гатчина

Репутация: 1
Всего: 3



Цитата(icewind @  26.5.2009,  10:29 Найти цитируемый пост)
Можно создать директорию для выдачи. При запросе к скрипту, тот создает в директории выдачи папку, название которой будет содержать  айпишнек (можно ip2long) и timestamp для обеспечения временного лимита и копирует туда нужный файл. Юзера предупредить что ссылка будет активна n часов. 

ссылка должна быть постоянной, это обязательно


Цитата(bazzjr @  26.5.2009,  10:17 Найти цитируемый пост)
Каждый раз когда "зарегистрированный" ползователь хочет скачать какой либо файл, то в адресной строке прибавляем некий ID, который позволяет ему скачивание. Если эту ссылку дать другому пользователю, то когда пользователь коннектится, система проверяет адрес, и смотрит тот самый ID, далее проверяет КУКИ, и если все нужные данные совпадают, система дает добро на скачивание или просмотр.

Всё равно тут присутствует активная логика, т.е. пропускать изображение через скрипт.


Цитата(gta4kv @  26.5.2009,  10:50 Найти цитируемый пост)
Из личного опыта, 2к уникальных обращений к файлу в течение часа не вызывали у сервера ничего кроме смертной скуки.

Очень хочется надеятся. А если много одновременных соединений? Ведь пхп прилично памяти ест, где то видел что в среднем 8 метров на обработку 1 запроса. Или не стоит заморачиватсья с этим пока проблема не проявит себя?
--------------------
Случайность - внезапно наступившая неизбежность.
PM MAIL WWW ICQ   Вверх
ruX
Дата 30.5.2009, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 8.9.2006
Где: г.Гатчина

Репутация: 1
Всего: 3



Ещё кое-что обнаружил
ВКонтакте не даёт просматривать фото если ввести адрес страницы на которой она лежит. Но если знать прямую ссылку на изображение(в том числе и на большую аватару), то можно даже не логинившись просматривать.
Это нормально?  smile 

Я подумал: если я буду пропускать через скрипт, то очень просто можно будет досить - достаточно открыть кучу соединений, они ведь не прервуться сами(учитывая что я поставлю большой лимит времени испольнения скрипта).
А если при выдачи изображения я буду проверять на количество соединений от пользователя, время между запросами, то это к запросу о правах доступа к БД добавиться ещё и проверка интервалов времени запросов

Или я через чур заморачиваюсь?  smile 
--------------------
Случайность - внезапно наступившая неизбежность.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0578 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.