![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Модрон-ветеринар
|
Сделал авторизацию на сайте через внедрение скрипта авторизации на все страницы. Через сессию. Все работает, как надо, да не совсем. Если вбить прямой путь в строке до загружаемых картинок,которые хранятся в отдельной директории, то браузер естественно все выдает на ура. Не могу сообразить как поступить.
Есть вариант - закрыть папку с картинками с помощью .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);
?>
Подскажите, пожалуйста, я совсем запутался, а сроки поджимают. |
|
|||||
|
Modus ponens
|
Да вроде так и делают...
ссылки на картинки вида: http://example.com/images.php?image=name в images.php проверяете сессию, если клиент зашел в пределах сессии - можно отдать картинку, если нет - то нельзя. Естественно при этом картинки лежат в недоступной пользователю директории.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Mar 2009
Сообщений: 317
|
скажу так, главное не показывать настоящий путь к файлу.
а как вы его уже будете делать, можно придумать кучу вариантов. честно говоря мне не нравится вариант с .htaccess, но если бы мне стояла такая задача, я бы использовал и его. в общем смысл такой, прочли - выдали.Если на сервере есть GDI, то просто на лету.... хотя это накладывает ограничения, но мне кажется это самое простое. как мне кажется хороший пример, стрим-фото. |
|
|||||
|
Модрон-ветеринар
|
Да, я тут повозился с многими вариантами, буду делать именно так:
картинка берется из В сам /fotobank кладу .htacces с полным запретом на любой HTTP, а в img.php внедряю скрипт авторизации, также как и на все страницы защищаемые,. Есть два способа - через инклуд или через переменную окружения auto_prepend_file , которой присваиваю значение полного пути к защитному скрипту. |
|
|||||
|
Регистрация: Mar 2009
Сообщений: 317
|
зачем показывать хоть какую-ту инфу по каталогам? просто id файла...
|
|
|||||
|
я бы при запросе в папку фотобанка делать перенаправление модреврайтом в скрипт, который бы парсил url и читал нужный фаил в стандартный вывод.
а если б в модреврайт были доступны сессии, то вообще малина была бы. ![]() |
|
|||||
|
Модрон-ветеринар
|
Да, согласен, погано в строчку загонять в каччестве значения путь к файлу. Но каким образом скрипту извлечь из id инфу о настоящем местонахождении, что-то пока легкого пути не представляю.
Либо он вычисляться должен из id на основе известного ему алгоритма, либо значение пути может приходить вместе с основым запросом из БД. Или есть лучшее решение?.. Добавлено через 5 минут в силу мизерного опыта не уловил, о чем речь. Это директива htaccess такая? Последний раз редактировалось mooncar; 21.05.2009 в 11:05. |
|
|||||
|
Регистрация: Mar 2009
Сообщений: 317
|
имхо идеально вытаскивать путь из БД. ну в принципе xml или txt тоже подойдет. =) как вариант можно поизвращаться с шифрованием. несиметричным...
![]() |
|
|||||
|
Регистрация: Aug 2006
Сообщений: 3
|
Цитата:
http://index.php?file=1.jpg и уже в файле после выполнения проверок <? readfile($FULL_FILE_PATH . $file); ?> таким образом файл может лежать вообще вне каталогов доступных через веб Цитата:
expl: RewriteRule ^file/.*$ /download.php [L] |
|
|||||
|
Регистрация: Nov 2008
Сообщений: 528
|
Цитата:
Только одно дополнение - полный путь к фотобанку не нужно прописывать. Добавляйте сами префикс "home/что-то-ещё/fotobank" к переданному в скрипт параметру. Таким образом вы будете уверены, что пользователь не сможет попросить ничего, кроме картинок из фотобанка. В остальном: не вижу ничего плохого, если вы расскажете пользователю, как называется ваш файл в недоступной папке. Последний раз редактировалось Stargazer; 03.06.2009 в 14:00. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:47. |
|
|
« Предыдущая тема | Следующая тема » |
|
|