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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> безопасный вывод картинки из php, как правильно показывать картинки 
:(
    Опции темы
Chewits
Дата 9.10.2009, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Сделать нужно так - php-файлу через get-запрос передается относительный путь до картинки, он эту картинку просто должен вывести.
Всвязи с тем что недоброжелатили могут написать вместо пути до картинки вообще что Бог на душу положит, начиная от игр с кавычками и заканчивая яваскриптами, а может и не заканчивая.. вообщем не знаю сколько всего можно придумать чтобы навредить.
Меня собственно интересует, какие вообще есть еще варианты для взлома и как от этого всего правильно защищаться?
PM MAIL WWW ICQ   Вверх
nerezus
Дата 9.10.2009, 23:01 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

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



Что?
У тебя пхп-файл отдает картинку?
Зачем? o_O


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Chewits
Дата 10.10.2009, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



ну он отдает html-страницу с картинкой, ну например туда еще можно кнопку закрытия картинки в эту страницу вставить, можно эту страницу отобразить будет как слой на другой странице.. ну чтобы красиво все было..
PM MAIL WWW ICQ   Вверх
brother79
Дата 10.10.2009, 03:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



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


--------------------
PM MAIL WWW   Вверх
nerezus
Дата 10.10.2009, 07:38 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

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



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


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Chewits
Дата 11.10.2009, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



На сайте есть статьи, в статьях иллюстрации - уменьшенные копии картинок, чтобы открыть картинки во всю величину, нужно щелкнуть по этим уменьшенным копиям. Я не хочу делать так:
<a href="big_photo.jpg"><img src="small_photo.jpg" alt="" /></a>
потому-что хочу иметь расширенные возможности для отображения картинки (например, я хочу, чтобы картинка отображалась на html-странице с черным фоном или методами gd lib её разукрасить "на лету" - поместить на неё, допустим, эмблему сайта). Поэтому я делаю так:
<a href="show_img.php?src=big_photo.jpg"><img src="small_photo.jpg" alt="" /></a>
Скрипт show_img.php занимаестя выводом html-странице, на которой картинка моя будет отображена в виде:
echo '<img src="'.$_GET['src'].'" alt="" />';
Я спрашивал какие опасности и как их нейтрализовать. то есть если я напишу if (file_exists("http://мой_сайт/".$_GET['src'])), этого будет достаточно?
PM MAIL WWW ICQ   Вверх
Ипатьев
Дата 11.10.2009, 18:20 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Это просто не сработает.

А сама затея не имеет смысла. Рисование на лету - это гарантированное средство задосить свой собственный сайт. 
PM MAIL   Вверх
Chewits
Дата 11.10.2009, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



рисовать на лету пока и не надо, надо чтобы картинка по центру страницы отображалась и кнопка закрыть около неё была
PM MAIL WWW ICQ   Вверх
capitan
Дата 11.10.2009, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Chewits, Вы реально пишите
Код

if (file_exists("http://мой_сайт/".$_GET['src']))
 ?

я про http://


Это сообщение отредактировал(а) capitan - 11.10.2009, 18:48
PM MAIL WWW ICQ   Вверх
nerezus
Дата 11.10.2009, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


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

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



Chewits, как минимум ты не различаешь пути в вебе и пути на файловой системе. Либо неверно строишь задачу.
Когда берешь картинку - то делай на ней лого и бросай ее в images/md5(rand(...). time()).jpeg, туда же и предпросмотр.

Если картинок будет > 10k, то структуру каталога делай многоуровневой 


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Ипатьев
Дата 11.10.2009, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



file_exists, только аргументом передавать имя файла, а не URL
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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