Вопрос по Безопасной загрузке картинок

Talker

Новичок
Вопрос по Безопасной загрузке картинок

Изучил много статей по безопасной загрузке картинок, узнал много способов взлома, но как гарантированно защититься от взлома через загрузку картинки не нашёл. Вопрос к специалистам по безопасности - приведенный ниже код спасёт мой скрипт от взлома через загрузку картинки?

PHP:
$init_file = "init_file.jpg";
$res_file = "res_file.jpg";
$size = getimagesize($init_file);
$init = ImageCreateFromJPEG($init_file);
$res = ImageCreateTrueColor($size[0], $size[1]);
ImageCopyResampled($res, $init, 0, 0, 0, 0, $size[0], $size[1], $size[0], $size[1]);
imagejpeg($res, $res_file, 90);
По моему разумению в res_file.jpg не остается никаких метаданных и содержимое перемешается, поэтому спрятать там рабочий скрипт будет невозможно. Я прав?

З.Ы. Просьба ничего не писать про проверку расширения файла, mime_type и значения getimagesize, все это защищает только от школьников и ломается на раз-два.
 

zerkms

TDD infected
Команда форума
Talker
конкретно по твоему вопросу кроме "ты гонишь" - ничего. потому и ждём, когда начнутся "умные" ответы.
 

Talker

Новичок
zerkms
В чём именно вы увидели гон? Код бесполезен или в том что бесполезно проверять mime_type, getimagesize и т.п.?
 

zerkms

TDD infected
Команда форума
Talker
совершенно верно. я не вижу ничего бесполезного в проверке типа по getimagesize.
 

Talker

Новичок
zerkms
Я немного резко выразился. Проверять по getimagesize не бесполезно, это сразу отсеивает некоторое количество кулцхакеров, но обойти эту проверку можно.
http://habrahabr.ru/blogs/php/44610/
http://raz0r.name/articles/bezopasnost-zagruzhaemyx-izobrazhenij/

Я знаю, что можно поставить дополнительный уровень защиты правильной настройкой веб-сервера. Но считаю неправильным перекладывать собственные косяки на сисадмина и надеяться что он сделает так что дыри нельзя будет использовать.
 

Фанат

oncle terrible
Команда форума
Talker
так на хабре ж написано, как защищаться. проверять тип и расширение. чем этот вариант не устроил?
 
Сверху