Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Реальна ли опастность внедрения кода или скриптов в картинку

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

fred2003

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возник такой вопрос.  
Реальна ли опасность, что пользователь загружая изображение подсунет картинку с какими то внедренными скриптами или кодом? И в чем может быть угроза, что он сможет натворить?
 
Если да то как вы с ней боретесь?  
Как делать очистку картинки при загрузке от таких скриптов и быть уверенным, что на сервере лежат только безопасные картинки?

Всего записей: 14 | Зарегистр. 01-10-2011 | Отправлено: 20:15 22-03-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fred2003

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

пример? это возможно только в случае дыры в браузере или же неправильных скриптов, которые позволяют делать исполняемыми заливаемые файлы.

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 20:18 22-03-2017
MR_DesigneR



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fred2003
Примерно так...

Всего записей: 14549 | Зарегистр. 06-09-2014 | Отправлено: 20:29 22-03-2017
fred2003

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MR_DesigneR
То что угроза для самих пользователей есть - понятно.  
Вопрос относительно сайта теперь.
 
 
Mavrikii
 

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

Представим такую логику:
Получив картинку на сервере,
1) мы всеми правдами и неправдами пытаемся узнать mime,  
2) картинку переименовываем и сохраняем  
3) допустим директория имеет такой htacces

Код:
 
<FilesMatch "\.(php|cgi|pl|fcgi|fpl|asp|jsp|php3|php4|php5|php6|phps|phtml|shtml|py)$">
    Order allow,deny
    Deny from all
</FilesMatch>
AddHandler cgi-script .js .html .xml .exe .php .pl .jsp .asp .sh .cgi
Options -ExecCGI
 

(Может кто из знающих подскажет более лучший вариант htaccess)
 
Теперь опять вопрос, этого достаточно чтобы быть уверенным, что пользователь загрузив картинку не натворит чудес???
 
Я понимаю что загрузив картинку и затянув его через  
$strFile= file_get_contents($file)
 и попытавшись его очистить через strip_tags(strFile) идея крайне глупая.  
 
Но может все таки как то проверить картинку на содержимое и как то очистить её от возможного мусора???  

Всего записей: 14 | Зарегистр. 01-10-2011 | Отправлено: 20:56 22-03-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fred2003

Цитата:
картинку переименовываем и сохраняем

если у вас есть возможность сохранить файл с другим расширением или что то сделать на сервере, то зачем вообще картинку заливать?
 
более того, для папки в которую заливаются чужие файлы должно быть отключено все, что возможно. тем более никаких AddHandler или cgi возможностей. файл останется файлом и никак выполниться не сможет.
 

Цитата:
Но может все таки как то проверить картинку на содержимое и как то очистить её от возможного мусора?

открываем в GD/ImageMagick, пересохраняем.

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 20:59 22-03-2017 | Исправлено: Mavrikii, 20:59 22-03-2017
MR_DesigneR



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fred2003

Цитата:
Вопрос относительно сайта теперь.  

Ссылка

Всего записей: 14549 | Зарегистр. 06-09-2014 | Отправлено: 23:47 22-03-2017
fred2003

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MR_DesigneR
Да я читал эту статью и от сюда если так можно сказать и пошли размышления на эту тему.
 
Mavrikii
 

Цитата:
если у вас есть возможность сохранить файл с другим расширением или что то сделать на сервере, то зачем вообще картинку заливать?  

У клиента должна быть возможность загружать файлы, так в тз.
 

Цитата:
открываем в GD/ImageMagick, пересохраняем.

Согласен с вами он всё, ну или почти всё вычестит. Но вот тут есть особенность, что картинка - это скан формата А4. И тут играет большое значение разрешение картинки 1 картинка пересохраняется за 15-20сек, а у клиента должна быть возможность сразу заливать до 7 страниц одним лотом, т.е. мне придется выставить php_value max_execution_time 180
Ну да ладно, если других мыслей нет, то так и придется сделать.
 
На счет htaccess  в папку с картинками, если не сложно можно рабочий пример железобетонный?
 
 
 

Всего записей: 14 | Зарегистр. 01-10-2011 | Отправлено: 01:30 23-03-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fred2003

Цитата:
У клиента должна быть возможность загружать файлы, так в тз.

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

Цитата:
а у клиента должна быть возможность сразу заливать до 7 страниц одним лотом, т.е. мне придется выставить php_value max_execution_time 180  
Ну да ладно, если других мыслей нет, то так и придется сделать.  

не делайте это скриптом, делайте утилитой с командной строкой - тот же ImageMagick
 

Цитата:
На счет htaccess  в папку с картинками, если не сложно можно рабочий пример железобетонный?

лучше прописывать в конфиге сервера и отрубать возможность использования в папке .htaccess
самый простой, если на сервере только php (как модуль апача) и нет никаких cgi настроек -  
php_flag engine off

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 01:44 23-03-2017 | Исправлено: Mavrikii, 01:44 23-03-2017
ManHunter



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
открываем в GD/ImageMagick, пересохраняем.

не факт, не факт...

----------
"На любое мое движение ваша реакция предусмотрена,
В лучшем случае - равнодушие, в худшем случае - патология..." (C) Егор Летов

Всего записей: 3091 | Зарегистр. 20-03-2004 | Отправлено: 12:34 23-03-2017
fred2003

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ManHunter
 
Можно поподробней.
Разве пересохранение через GD, не очистит изображение от возможного внедренного кода?  

Всего записей: 14 | Зарегистр. 01-10-2011 | Отправлено: 14:23 23-03-2017
ManHunter



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В статье по ссылке приведены примеры специально подготовленных изображений, которые способны выдержать и пересохранение, и даже ресайз. Да и теория неплохо расписана.

----------
"На любое мое движение ваша реакция предусмотрена,
В лучшем случае - равнодушие, в худшем случае - патология..." (C) Егор Летов

Всего записей: 3091 | Зарегистр. 20-03-2004 | Отправлено: 15:17 23-03-2017
fred2003

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ManHunter
За ссылку спасибо. Я так и подозревал, что это может прятаться в шапке.  
 
А скрипты js ведь наверняка также могут встроить и тогда картинка оказавшись встроенной в страницу сможет ведь и запустить их или нет?!
 
Называется задумался над этим!
Ну и как тогда быть?  
 

Всего записей: 14 | Зарегистр. 01-10-2011 | Отправлено: 16:20 23-03-2017
ManHunter



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
А скрипты js ведь наверняка также могут встроить и тогда картинка оказавшись встроенной в страницу сможет ведь и запустить их или нет?!

Только специально подготовленными скриптами [1] [2].

Цитата:
Ну и как тогда быть?  

Не преувеличивать. Правильно настроенный сервер и отсутствие в скриптах уязвимостей типа LFI дают гарантию, что даже если в загруженной картинке есть что-то постороннее, воспользоваться этим злоумышленнику не удастся.

----------
"На любое мое движение ваша реакция предусмотрена,
В лучшем случае - равнодушие, в худшем случае - патология..." (C) Егор Летов

Всего записей: 3091 | Зарегистр. 20-03-2004 | Отправлено: 17:49 23-03-2017
Leljka



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
fred2003
Ууу.. кажись торкнуло! Была мысля по поводу. У страха глаза велики, длинше бы руки.
Вот почему прославленный Касперский немогёть открыть зипы, созданные штатными средствами, вообще убило.
Скорее всего, им лениво.

Всего записей: 98 | Зарегистр. 23-03-2017 | Отправлено: 20:42 11-04-2017 | Исправлено: Leljka, 20:42 11-04-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Leljka
Не стоит накручивать счетчик бессмысленными постами - так и бан получить недолго.
Ваше сообщение не имеет ни малейшего отношения к теме или разделу.

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 20:44 11-04-2017
Leljka



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подробнее...

Всего записей: 98 | Зарегистр. 23-03-2017 | Отправлено: 21:09 11-04-2017
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Leljka
пожалуйста, не лейте воду не по делу. это не флейм.

Всего записей: 15038 | Зарегистр. 20-09-2014 | Отправлено: 21:25 11-04-2017
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Реальна ли опастность внедрения кода или скриптов в картинку


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru