[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Безопасность при загрузке изображений
Страницы: 1, 2, 3, 4
andrey888
На что стоит обратить внимание при позволении юзеру загружать свои изображения на сервер.. Почитал пару статей через Гугл - в голове каша так как пишут разное и уделяют внимание разным вещам.
Подскажите какие проверки нужно делать дабы полностью обезопаситься от "плохих" изображение, со скриптами и всякой гадостью внутри, с неправильным расширением и т.д.
Если у кого завалялись адреса на статьи с рассмотрением подобным задач - буду рад прочесть.
Благодарю.

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
nugle
Вот на эту статью надо обратить внимание
http://irbis-team.com/15/13/2
andrey888
Цитата (nugle @ 13.02.2012 - 13:36)
Вот на эту статью надо обратить внимание
http://irbis-team.com/15/13/2

Спасибо за статью.. но там ничего не говорится о проверке имиджа на разного рода скрипты и так далее.
Что нибудь еще?

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
nugle
andrey888
там говорится про форматы, а какие могут быть скрипты при png файле?
andrey888
при чем тут png ? .. простого jpg, jpeg хватит .
Я просто хочу узнать подробнее о проверках которые делают при загрузке изображений на сервер. И эти проверки точно не ограничиваются теми методами что приведены в статье "выше".
В мета данные либо в конце кода картинки зачастую подсовываются данные которые там быть не должны..
Как такое проверять и отсеивать ..


_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Игорь_Vasinsky
getimagesize() всегда прикроет тылы rolleyes.gif

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
andrey888
то есть проверяем MIME тип , потом прогоняем файл через getimagesize() и можно спать спокойно ?
главная забота чтоб изображение именно им и являлось. Если внутри есть php, perl, javascript либо другой возможный скрипт - он должен быть удален или обнаружен.

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Игорь_Vasinsky
что есть у изображения и нет у другого файла? тип-тоже нужный момент

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
по умолчанию - скрипт не будет выполняться в файлах с расширением картинок.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
andrey888
ok еще наткнулся на инфу по проверке через функцию imageResize() .. дак что ж лучше эта функция или getimagesize() ??
если не сложно поясни как сработает та и другая функция и что все таки предпочтительнее .. что бы ты использовал на моем месте что проверять изображение ?

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Игорь_Vasinsky
как они работают - написано в мануале - но они работают тока с картинками (намёк)

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
andrey888
Твой "тонкий" намек понятен ))) спасибо ))

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Белый Тигр
Пора уже FAQ создавать в этом разделе smile.gif
http://habrahabr.ru/blogs/php/44610/
http://habrahabr.ru/blogs/php/44615/
andrey888
Вот как раз таки на эти статьи и наткнулся ...
getimagesize() протестил на локалке.. втыкал разного рода надписи в картинку (jpg) и вроде бы все корректно - то есть если я что то изменяю функция не выдает массив , если все чисто то функция работает как надо ..
попробовал на gif и вот здесь то функция даже после вставки стороннего кода выдала массив , то есть моя вставка пхп в код картинки прошла незамеченной ....
"Белый Тигр" в вашей первой статье написано что эту функцию можно обойти и обходят .. правильно ли я понимаю что можно обойти только с использованием gif , если же я буду разрещать загружать только jpg , jpeg - то могу спать спокойно ... ?? я прав или нет ?

Сорри .. в jpg тоже удачно поставил и функция сработала как с простым изображением .. че ж делать то ???
Вывод - эта функция совсем не панацея ..

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Белый Тигр
Я как-то раз действовал следующим способом:
1) Все принимаемые картинки конвертировал в jpg нужных мне форматов
2) Во внутренностях оригинала искал фразы типа <html>, <script>, <?php, <?. Если находил - отклонял изображение.
Быстрый ответ:

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