Автор Тема: защитите мои картинки. Плиз :)  (Прочитано 9712 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн a@mail.dux.ru

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 105
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
защитите мои картинки. Плиз :)
« : 18 Сентября 2003, 21:46:21 »
Подскажите пожалйста!

 как сделать так, что бы картинки из директории /images можно было бы смотреть только переходя на страницы на которых установлен html код
 
Например

и нельзя бы было просто набрать Мой сайт/images/2660.gif

могу переместить картинки куда угодно (в какую угодно директорию)

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
защитите мои картинки. Плиз :)
« Ответ #1 : 18 Сентября 2003, 23:01:51 »
предлагаю такой вариант:
1. картинки отдаешь скриптом
2. в скриптах используешь сессии.
Если пользователь зашел на страницу на которой
разрешен показ картинки, в сессию записывается этот факт (и время).
При вызове скрипта, отдающего картинку скрипт проверяет сессию пользовтаеля,
был ли он на такой странице за последние пару минут - если был, то выводим картинку.

Вроде выглядит работоспособным, правда к src картинки нужно SID дописывать


Можно наверное еще и через referer - но это подделать проще.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн a@mail.dux.ru

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 105
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
защитите мои картинки. Плиз :)
« Ответ #2 : 18 Сентября 2003, 23:50:07 »
я не понял пункт 1. оттого пока не понятен смысл остального.

но полагаю в описном тобою варианте все равно возможен просмотр картинки прямым набором ее адреса в адресной строке браузера.
вот так например: Мой сайт/images/2660.gif

а мне хотелось бы что бы никак кроме как через php-шную страницу картинки из этой директории посмотреть было бы нельзя

Но все равно спасибо. Хотяя я может не понял тебя?? :(

Оффлайн Shaitan

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 3
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
защитите мои картинки. Плиз :)
« Ответ #3 : 19 Сентября 2003, 00:47:42 »
Сделай примерно так:
создай файлик или табличку в мускуле в которой будет таблица соотв. типа:
ksjdfhsdhf3542; image1.jpg
skks52352shskj; image2.jpg
далее передаешь в скрипт image.php непонятные параметры
index.html:


image.php:
#тут выдергиваешь имя файла соотв. переданной переменной(в зависимости от метода хранения таблицы соответствия)

Header("Content-type: image/jpeg");
$fd=fopen($file, "r")

   $content= fread($fd, filesize($file));
   fclose($fd);

echo $content;
?>

что-то типа того...

Оффлайн a@mail.dux.ru

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 105
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
защитите мои картинки. Плиз :)
« Ответ #4 : 19 Сентября 2003, 01:14:09 »
Shaitan спасибо.

Но как отобразится это на загрузку сервера?

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

Или я не прав?

А вообще ты накрутил. если так делать, то просто надо засунуть картинки выше корня сайта. и вызывать их тегом

а дальше вызывать как ты пишешь. Экономия получается (на базе данных или таблице соответствия).

Но все равно спасибо :)

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
защитите мои картинки. Плиз :)
« Ответ #5 : 19 Сентября 2003, 04:14:49 »
а что помешает мне ввести
http://твой_сайт.ru/images.php?image.jpeg
и посмотреть картинку

ЗЫ
[p]readfile[/p]
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
защитите мои картинки. Плиз :)
« Ответ #6 : 19 Сентября 2003, 04:19:21 »
a@mail.dux.ru
в моем сообщении смысл пункта 1 уже описан выше:
/// получаем filename
header("Content-Type: image/jpeg");
readfile($filename);
?>
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
защитите мои картинки. Плиз :)
« Ответ #7 : 19 Сентября 2003, 08:41:38 »
а вот цитата из мануала по Апачу 1.3, часть URL Rewriting Guide
может поможет?

Blocked Inline-Images

Description:
Assume we have under http://www.quux-corp.de/~quux/ some pages with inlined GIF graphics. These graphics are nice, so others directly incorporate them via hyperlinks to their pages. We don\'t like this practice because it adds useless traffic to our server.
Solution:
While we cannot 100% protect the images from inclusion, we can at least restrict the cases where the browser sends a HTTP Referer header.

RewriteCond %{HTTP_REFERER} !^$                                
RewriteCond %{HTTP_REFERER} !^http://www.quux-corp.de/~quux/.*$ [NC]
RewriteRule .*\\.gif$        -                                    [F]


RewriteCond %{HTTP_REFERER}         !^$                                
RewriteCond %{HTTP_REFERER}         !.*/foo-with-gif\\.html$
RewriteRule ^inlined-in-foo\\.gif$   -                        [F]
•••Jah\'d never let us down!•••

Оффлайн Xander

  • санитар леса
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1780
  • +0/-0
  • 2
    • Просмотр профиля
защитите мои картинки. Плиз :)
« Ответ #8 : 19 Сентября 2003, 08:42:55 »
P.S. то есть Апач проверяет, выставлена ли переменная $HTTP_REFERER, и в зависимости от этого выдает или не выдает картинку.
•••Jah\'d never let us down!•••

Оффлайн a@mail.dux.ru

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 105
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
защитите мои картинки. Плиз :)
« Ответ #9 : 19 Сентября 2003, 11:24:35 »
Xander

Как я понял (хоть в английском не силен) что надо изменить настройки Апача? Но я ж обычный клиент и эти действия мне недоступны.

Может что-то можно сделать с помощью .htaccess ?

Оффлайн a@mail.dux.ru

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 105
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
защитите мои картинки. Плиз :)
« Ответ #10 : 19 Сентября 2003, 11:48:12 »
Макс,
поясни, что это значит: 1. картинки отдаешь скриптом
? там наверное грамматическая ошибка. И мне не понятно что Точно ты имел ввиду.
Я понял это так: 1. картинки СоЗтдаешь скриптом.

Если так. то:
1) увеличиться ли нагрузка на сервер? если да, то насколько?

а в ответ на
-----------
а что помешает мне ввести
http://твой_сайт.ru/images.php?image.jpeg
и посмотреть картинку
----------

так в файле images.php я просто проверю $HTTP_REFERER и если заход не с моего сайта. то картинку не покажу

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
защитите мои картинки. Плиз :)
« Ответ #11 : 19 Сентября 2003, 12:59:37 »
> поясни, что это значит: 1. картинки отдаешь скриптом
картинки ложишь в папку, недоступную по www а все адреса картинок меняешь на

в скрипте image.php проверяешь можно ли выдавать картинку скриптом и если можно -  выдаешь ее ему:
<?
//// проверка
...
header("Content-Type: image/jpeg");
readfile($filename);
?>

нагрузка увеличится. Насколько - не знаю, если это не порносайт - то не важно.

ЗЫ
если тебя устраивает надежность которую может обеспечить referer - то используй свой вариант. Или (что даже лучше ИМХО) вариант Xander-а. Его через .htaccess можно реализовать
« Последнее редактирование: 19 Сентября 2003, 13:05:14 от Макс »
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн a@mail.dux.ru

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 105
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
защитите мои картинки. Плиз :)
« Ответ #12 : 19 Сентября 2003, 13:28:30 »
Макс
спасибо. с \'1\' все понятно. вопрос с загрузкой остается, хоть и не порносайт, но картинки могут достигать 80-100 килобайт и посещаемость может быть высокая.

а вот про
------
вариант Xander-а. Его через .htaccess можно реализовать
------

Ничего не знаю. поясни, плиз. или где искать про это инфо?

Оффлайн a@mail.dux.ru

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 105
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
защитите мои картинки. Плиз :)
« Ответ #13 : 19 Сентября 2003, 13:29:40 »
ЛЮДИ!!!
Скажите, плиз, насколько увеличится загрузка сервера
при выводе картинки вместо обычного


таким образом:


в скрипте image.php проверяешь можно ли выдавать картинку скриптом и если можно - выдаешь ее ему:
//// проверка
...
header("Content-Type: image/jpeg");
readfile($filename);
?>

Это будет в разы или..?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
защитите мои картинки. Плиз :)
« Ответ #14 : 19 Сентября 2003, 13:44:59 »
Если никто таких тестов не проводил, то никто тебе не ответит.
Можешь посмотреть, насколько время отдачи различается:
пишешь скрипт, который будет выводить картинку.
Берешь apache benchmark и сравниваешь насколько /images/2660.gif быстрее чем image.php?img=2660.gif
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28