Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.05.2009, 00:33
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 1  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
По умолчанию Авторизация через сессию не закрывает картинки, как бороться?

Сделал авторизацию на сайте через внедрение скрипта авторизации на все страницы. Через сессию. Все работает, как надо, да не совсем. Если вбить прямой путь в строке до загружаемых картинок,которые хранятся в отдельной директории, то браузер естественно все выдает на ура. Не могу сообразить как поступить.
Есть вариант - закрыть папку с картинками с помощью .htaccess, а картинки выводить с помощью скрипта с графическими функциями, так как серверным скриптам htaccess не указ. Естественно тогда нужно защищать еще и этот сам этот гарфический скрипт.
Мне кажется, что как-то криво все получается.
Как поступают в случаях, когда нужно защитить не только определенные страницы, но и картинки, в них выводимые?
Создавать спецкаталог для них, защищать его через htaccess и писать для страниц, использующих картинки из него, специальный запрос с логином-паролем, типа как тут:
Код:
<?php

$login = 'login';
$passw = 'password';

$authBasic = 'Authorization: Basic '. base64_encode($login .':'. $passw);

// Опции для потока
$opts = array
( 
   'http' => array 
   (
       'method' => 'GET',
       'header' => $authBasic ."\r\n"
   )
);

$context = stream_context_create($opts);

// Получение файла
$file = file_get_contents('http://www.example.com/', false, $context);

?>
Или это вообзще ахинея?
Подскажите, пожалуйста, я совсем запутался, а сроки поджимают.

Старый 19.05.2009, 02:56
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Да вроде так и делают...
ссылки на картинки вида: http://example.com/images.php?image=name
в images.php проверяете сессию, если клиент зашел в пределах сессии - можно отдать картинку, если нет - то нельзя. Естественно при этом картинки лежат в недоступной пользователю директории.
__________________
Hell is the possibility of sanity

Старый 19.05.2009, 04:05
duhowka вне форума Посмотреть профиль Отправить личное сообщение для duhowka Найти все сообщения от duhowka
  № 3  
Ответить с цитированием
duhowka

Регистрация: Mar 2009
Сообщений: 317
скажу так, главное не показывать настоящий путь к файлу.
а как вы его уже будете делать, можно придумать кучу вариантов. честно говоря мне не нравится вариант с .htaccess, но если бы мне стояла такая задача, я бы использовал и его. в общем смысл такой, прочли - выдали.Если на сервере есть GDI, то просто на лету.... хотя это накладывает ограничения, но мне кажется это самое простое.
как мне кажется хороший пример, стрим-фото.

Старый 19.05.2009, 05:06
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Да, я тут повозился с многими вариантами, буду делать именно так:
картинка берется из
Код:
<img src="img.php?infile=/home/../fotobank/1.jpg"/>
В сам /fotobank кладу .htacces с полным запретом на любой HTTP,
а в img.php внедряю скрипт авторизации, также как и на все страницы защищаемые,. Есть два способа - через инклуд или через переменную окружения auto_prepend_file , которой присваиваю значение полного пути к защитному скрипту.

Старый 19.05.2009, 21:45
duhowka вне форума Посмотреть профиль Отправить личное сообщение для duhowka Найти все сообщения от duhowka
  № 5  
Ответить с цитированием
duhowka

Регистрация: Mar 2009
Сообщений: 317
зачем показывать хоть какую-ту инфу по каталогам? просто id файла...

Старый 19.05.2009, 21:59
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 6  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
я бы при запросе в папку фотобанка делать перенаправление модреврайтом в скрипт, который бы парсил url и читал нужный фаил в стандартный вывод.

а если б в модреврайт были доступны сессии, то вообще малина была бы.

Старый 21.05.2009, 10:57
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 7  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от duhowka Посмотреть сообщение
зачем показывать хоть какую-ту инфу по каталогам? просто id файла...
Да, согласен, погано в строчку загонять в каччестве значения путь к файлу. Но каким образом скрипту извлечь из id инфу о настоящем местонахождении, что-то пока легкого пути не представляю.
Либо он вычисляться должен из id на основе известного ему алгоритма, либо значение пути может приходить вместе с основым запросом из БД. Или есть лучшее решение?..

Добавлено через 5 минут
Цитата:
Сообщение от Mnilionic Посмотреть сообщение
перенаправление модреврайтом в скрипт
в силу мизерного опыта не уловил, о чем речь.
Это директива htaccess такая?


Последний раз редактировалось mooncar; 21.05.2009 в 11:05.
Старый 21.05.2009, 14:45
duhowka вне форума Посмотреть профиль Отправить личное сообщение для duhowka Найти все сообщения от duhowka
  № 8  
Ответить с цитированием
duhowka

Регистрация: Mar 2009
Сообщений: 317
имхо идеально вытаскивать путь из БД. ну в принципе xml или txt тоже подойдет. =) как вариант можно поизвращаться с шифрованием. несиметричным...

Старый 03.06.2009, 06:26
z00m вне форума Посмотреть профиль Отправить личное сообщение для z00m Найти все сообщения от z00m
  № 9  
Ответить с цитированием
z00m

Регистрация: Aug 2006
Сообщений: 3
Цитата:
Сообщение от mooncar Посмотреть сообщение
Да, согласен, погано в строчку загонять в каччестве значения путь к файлу. Но каким образом скрипту извлечь из id инфу о настоящем местонахождении, что-то пока легкого пути не представляю.
Либо он вычисляться должен из id на основе известного ему алгоритма, либо значение пути может приходить вместе с основым запросом из БД. Или есть лучшее решение?..
можно сделать например так
http://index.php?file=1.jpg

и уже в файле после выполнения проверок
<? readfile($FULL_FILE_PATH . $file); ?>
таким образом файл может лежать вообще вне каталогов доступных через веб

Цитата:
в силу мизерного опыта не уловил, о чем речь.
Это директива htaccess такая?
Да. Очень удобно.

expl: RewriteRule ^file/.*$ /download.php [L]

Старый 03.06.2009, 13:57
Stargazer вне форума Посмотреть профиль Отправить личное сообщение для Stargazer Найти все сообщения от Stargazer
  № 10  
Ответить с цитированием
Stargazer

Регистрация: Nov 2008
Сообщений: 528
Цитата:
Да, я тут повозился с многими вариантами, буду делать именно так:
картинка берется из
Код:

<img src="img.php?infile=/home/../fotobank/1.jpg"/>

В сам /fotobank кладу .htacces с полным запретом на любой HTTP
Насколько я знаю - наилучшее решение.
Только одно дополнение - полный путь к фотобанку не нужно прописывать. Добавляйте сами префикс "home/что-то-ещё/fotobank" к переданному в скрипт параметру. Таким образом вы будете уверены, что пользователь не сможет попросить ничего, кроме картинок из фотобанка. В остальном: не вижу ничего плохого, если вы расскажете пользователю, как называется ваш файл в недоступной папке.


Последний раз редактировалось Stargazer; 03.06.2009 в 14:00.
Создать новую тему Ответ Часовой пояс GMT +4, время: 03:04.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 03:04.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.