Спустя 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. Приведите пример пжл., я ошибся где-то или делаю что-то не так. |
Спустя 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
в него пишешь:
Теперь там никакой скрипт не исполнится.
Но есть теоретическая возможность инклюд уязвимости. Если таковая возможность есть, то можно сделать инклюд того, что туда было загружено.
Например на сайте ******* 2 сервера на одном хранились картинки, на другом скрипты. Т.е загружаемые картинки передаются на 2 сервер откуда они и берутся.
например:
srv1.example.com - 192.168.0.2
example.com - 192.168.0.1
чтобы получить картинку с index.php на сайте example.com они в коде из СУБД брали инфу о картинках и делали так:
Там правда не апач у них стоял, а nginx. Но если поставить htaccess с тем, что я описал, это решит проблему.
Но это все отлично и хорошо, паранойя на высоте. Но один очень любезный разработчик сайта ********* делал отладку на тестовом сервере с рабочими конфигами, так вот в одном из аспешных скриптов был инклюд баг, который выдал пароли от рабочего сайта :)
Он просто забыл свой сервак закрыть от индексации гуглом. Вот такой эпик фэйл.
Главное изначально грамотно все спроектировать, чтобы таких проблем не возникало.
Вообще в таком случае может даже eval быть, кто его знает...
По сути:
/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
{сохраняем}
$fail=@imagecreatefromjpeg($загруженное изображение);
if (!fail)
{echo 'sorry'}
else
{сохраняем}