[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос по безопасности загрузки изображения
Kep
Какую опасность может представлять загруженное изображение.




Спустя 22 минуты, 13 секунд (25.03.2012 - 10:52) twin написал(а):
Как какую... Вот загрузит кто-нибудь такое изображение, тебя чик - и Кондратий хватит.

Спустя 27 минут, 59 секунд (25.03.2012 - 11:20) twin написал(а):
Опасность могут предствлять не изображения, а файлы. Причем исполняемые. Отсюда вывод - изображения безопасны, а скрипты, загруженные под их видом могут наделать чего угодно.

Спустя 15 минут, 1 секунда (25.03.2012 - 11:35) Kep написал(а):
Т.е. Если даже файл предсавляющий опасноть при сохранении переименовать имя и тип файла, то он уже не будет выполняться. Присвоить значение kep.jpg

Спустя 9 минут, 41 секунда (25.03.2012 - 11:45) twin написал(а):
Не будет. Если его не открыть напрямую в IE6 (может и позже).

Спустя 8 минут (25.03.2012 - 11:53) Guest написал(а):
Но файл то будет читаться как изображение, напрямую это как? Исходный код?

Спустя 4 минуты, 38 секунд (25.03.2012 - 11:57) Guest написал(а):
Если файл читается изображением, то серверу опасность не представляет. А пользователю, только если он его допустим загрузит и откроет в блокноте.

Спустя 5 минут, 15 секунд (25.03.2012 - 12:03) Visman написал(а):
IE6 открывает файлы опираясь на их внутреннюю структуру, а не расширение.
Если конечно в его свойствах безопасности это не изменить.

Спустя 1 час, 29 минут, 56 секунд (25.03.2012 - 13:33) Guest написал(а):
Но самое главное такой файл может навредить серверу, сохранённый как kep.jpg? А даже если у пользователя файл откроется, там максимум может быть script или я ошибаюсь.

Спустя 36 минут, 26 секунд (25.03.2012 - 14:09) Visman написал(а):
Если на сервере в скриптах нет возможной дырки на include произвольных файлов, то опасность для сервера стремится к нулю.

Спустя 2 часа, 50 минут, 52 секунды (25.03.2012 - 17:00) Guest написал(а):
Я ещё где-то читал про метаданные в изображении, они будут выполняться, если там опастный скрипт?

Спустя 16 часов, 49 минут, 49 секунд (26.03.2012 - 09:50) Kep написал(а):
В php есть возможность стирать метаданные в изображении?

Спустя 7 минут, 47 секунд (26.03.2012 - 09:57) Visman написал(а):
Думаю, если пересоздать изображение, то метаданные будут стерты.
З.Ы, Пересозданные изображения точно не смогут содержать в себе вредоносный код!

Спустя 50 минут, 53 секунды (26.03.2012 - 10:48) Guest написал(а):
Пересоздать copy() ? Или как.

Спустя 11 минут, 9 секунд (26.03.2012 - 11:00) Visman написал(а):
Цитата (Guest @ 26.03.2012 - 15:48)
Или как.

Пропустить изображение через создание и сохранение его в gd, например.
http://php.su/functions/?cat=image

Спустя 21 минута, 23 секунды (26.03.2012 - 11:21) Guest написал(а):
Неужеле разработчики не предусмотрели функцию для удаления метаданных? Хостинг не предоставляет такие библиотеки т.к. Бесплатный. Есть ещё варианты для решения проблемы?

Спустя 2 часа, 1 минута, 34 секунды (26.03.2012 - 13:22) Kep написал(а):
exif_read_data этой функцией можно проверить файл на опастность?

Спустя 1 час, 58 минут, 12 секунд (26.03.2012 - 15:21) I++ написал(а):

Спустя 1 час, 35 минут, 38 секунд (26.03.2012 - 16:56) Guest написал(а):
Для сервера и пользователя могут представлять опастность загруженные файлы с опастным содержимым в названии файла (script.jpeg), непосредствено файл (shel.php), с подменой типа (shel.php.jpeg) и содержимым в метаданных. Если я что-то упустил, поправьте меня.

Спустя 14 часов, 13 минут, 46 секунд (27.03.2012 - 07:10) Kep написал(а):
У меня не получается обрабатывать файл kep.jpg с содержимым php. Приведите пример пжл., я ошибся где-то или делаю что-то не так.

Спустя 11 минут, 23 секунды (27.03.2012 - 07:21) Visman написал(а):
Цитата (Kep @ 27.03.2012 - 12:10)
У меня не получается обрабатывать файл kep.jpg с содержимым php. Приведите пример пжл., я ошибся где-то или делаю что-то не так.

В этой теме http://phpforum.su/index.php?showtopic=59235&hl=
я давал ссылку на сообщение с решением.

Спустя 1 час, 21 минута, 30 секунд (27.03.2012 - 08:43) Kep написал(а):
Я эту тему читал и не только, но вот не получается. Можно короткий пример, именно для этой проблемы.

Спустя 13 минут, 50 секунд (27.03.2012 - 08:57) Visman написал(а):
Для какой проблемы?
Там автор дал код, который выдает сообщение, если вместо картинки загружена муть.

Спустя 1 час, 36 минут, 1 секунда (27.03.2012 - 10:33) Guest написал(а):
Проблема в том, что файлы с php сохранённые как kep.jpg загружаются. Чего тут не понятного, я в точности выполнил как указанно в теме которую вы даёте, но у меня вылетают ошибки.

Спустя 4 минуты, 4 секунды (27.03.2012 - 10:37) Visman написал(а):
Выложи сюда твой код файла, который принимает рисунок и делает его проверку.
Код обрамляй соответствующими бб-кодами.

Спустя 3 часа, 19 минут, 20 секунд (27.03.2012 - 13:56) Guest написал(а):
Извини, но я с мобильного.

Спустя 45 минут, 2 секунды (27.03.2012 - 14:41) I++ написал(а):
Попахивает паранойей.

По сути:

/home/example.com/public_html/uploaded_img

туда суешь .htaccess

в него пишешь:

php_value engine 0


Теперь там никакой скрипт не исполнится.

Но есть теоретическая возможность инклюд уязвимости. Если таковая возможность есть, то можно сделать инклюд того, что туда было загружено.

Например на сайте ******* 2 сервера на одном хранились картинки, на другом скрипты. Т.е загружаемые картинки передаются на 2 сервер откуда они и берутся.

например:

srv1.example.com - 192.168.0.2

example.com - 192.168.0.1

чтобы получить картинку с index.php на сайте example.com они в коде из СУБД брали инфу о картинках и делали так:

<img src="srv1.example.com/uploaded_img/734875.jpg" />


Там правда не апач у них стоял, а nginx. Но если поставить htaccess с тем, что я описал, это решит проблему.

Но это все отлично и хорошо, паранойя на высоте. Но один очень любезный разработчик сайта ********* делал отладку на тестовом сервере с рабочими конфигами, так вот в одном из аспешных скриптов был инклюд баг, который выдал пароли от рабочего сайта :)

Он просто забыл свой сервак закрыть от индексации гуглом. Вот такой эпик фэйл.

Главное изначально грамотно все спроектировать, чтобы таких проблем не возникало.

Вообще в таком случае может даже eval быть, кто его знает...

Спустя 1 час, 44 минуты, 9 секунд (27.03.2012 - 16:25) Kep написал(а):
Лучше уж быть параноеком (какое-то время)), чем потоп пару тысяч страниц переписывать и загружать. Без обид, хорошо :-), но всё равно всем спасибо.

Спустя 2 дня, 16 часов, 12 минут, 56 секунд (30.03.2012 - 08:38) Kep написал(а):
Не могу понять. Вот если юзер загрузит файл пхп, под именем kep.jpg и запустит его, например так include (''kep.jpg''); , то файл выполнится. А вот говорят что метаданные с опасным содержимым может навредить серверу или пользователю, как? Метаданные ни как не выполняюся же.

Спустя 9 часов, 40 минут, 45 секунд (30.03.2012 - 18:19) Guest написал(а):
форумчане вот маленький пример
$fail=@imagecreatefromjpeg($загруженное изображение);
if (!fail)
{echo 'sorry'}
else
{сохраняем}
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.