andrey888
13.02.2012 - 17:35
На что стоит обратить внимание при позволении юзеру загружать свои изображения на сервер.. Почитал пару статей через Гугл - в голове каша так как пишут разное и уделяют внимание разным вещам.
Подскажите какие проверки нужно делать дабы полностью обезопаситься от "плохих" изображение, со скриптами и всякой гадостью внутри, с неправильным расширением и т.д.
Если у кого завалялись адреса на статьи с рассмотрением подобным задач - буду рад прочесть.
Благодарю.
_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Вот на эту статью надо обратить внимание
http://irbis-team.com/15/13/2
andrey888
13.02.2012 - 18:11
Спасибо за статью.. но там ничего не говорится о проверке имиджа на разного рода скрипты и так далее.
Что нибудь еще?
_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
andrey888
там говорится про форматы, а какие могут быть скрипты при png файле?
andrey888
13.02.2012 - 21:05
при чем тут png ? .. простого jpg, jpeg хватит .
Я просто хочу узнать подробнее о проверках которые делают при загрузке изображений на сервер. И эти проверки точно не ограничиваются теми методами что приведены в статье "выше".
В мета данные либо в конце кода картинки зачастую подсовываются данные которые там быть не должны..
Как такое проверять и отсеивать ..
_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Игорь_Vasinsky
13.02.2012 - 21:06
getimagesize() всегда прикроет тылы
_____________
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
13.02.2012 - 21:31
то есть проверяем MIME тип , потом прогоняем файл через getimagesize() и можно спать спокойно ?
главная забота чтоб изображение именно им и являлось. Если внутри есть php, perl, javascript либо другой возможный скрипт - он должен быть удален или обнаружен.
_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Игорь_Vasinsky
13.02.2012 - 21:34
что есть у изображения и нет у другого файла? тип-тоже нужный момент
_____________
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
13.02.2012 - 21:35
по умолчанию - скрипт не будет выполняться в файлах с расширением картинок.
_____________
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
13.02.2012 - 21:46
ok еще наткнулся на инфу по проверке через функцию imageResize() .. дак что ж лучше эта функция или getimagesize() ??
если не сложно поясни как сработает та и другая функция и что все таки предпочтительнее .. что бы ты использовал на моем месте что проверять изображение ?
_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Игорь_Vasinsky
13.02.2012 - 21:58
как они работают - написано в мануале - но они работают тока с картинками (намёк)
_____________
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
13.02.2012 - 22:10
Твой "тонкий" намек понятен ))) спасибо ))
_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Белый Тигр
13.02.2012 - 22:41
andrey888
13.02.2012 - 23:46
Вот как раз таки на эти статьи и наткнулся ...
getimagesize() протестил на локалке.. втыкал разного рода надписи в картинку (jpg) и вроде бы все корректно - то есть если я что то изменяю функция не выдает массив , если все чисто то функция работает как надо ..
попробовал на gif и вот здесь то функция даже после вставки стороннего кода выдала массив , то есть моя вставка пхп в код картинки прошла незамеченной ....
"Белый Тигр" в вашей первой статье написано что эту функцию можно обойти и обходят .. правильно ли я понимаю что можно обойти только с использованием gif , если же я буду разрещать загружать только jpg , jpeg - то могу спать спокойно ... ?? я прав или нет ?
Сорри .. в jpg тоже удачно поставил и функция сработала как с простым изображением .. че ж делать то ???
Вывод - эта функция совсем не панацея ..
_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
Белый Тигр
14.02.2012 - 03:02
Я как-то раз действовал следующим способом:
1) Все принимаемые картинки конвертировал в jpg нужных мне форматов
2) Во внутренностях оригинала искал фразы типа <html>, <script>, <?php, <?. Если находил - отклонял изображение.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.