Класс проверяет расширение файла и, соответственно, вызывает соответствующую функцию для начала редактирования изображения, например imagecreatefromjpeg , imagecreatefrompng и так далее...
Я читал, что можно встроить вредоносный код в данные EXIF или другую часть изображения.
Итак как я могу оптимизировать свой код и сделать его более безопасным, чтобы предотвратить запуск вредоносного кода в скомпрометированном файле изображения?
Есть ли лучший способ определить тип файла, кроме проверки его расширения?
Я уже проверил ответы на другой вопрос («Вредоносный код посредством загрузки изображения»), но это не развеивает все мои сомнения.
Более надежный код мог бы помогите всем обрабатывать загруженные изображения с помощью PHP.
Рабочий процесс, который я использую, в основном таков для файла JPEG:
Код: Выделить всё
$uploaded_file = 'uploaded/image.jpg';
$destination_file_url = 'uploaded/image_resized.jpg';
$extension = strtolower(strrchr($uploaded_file, '.'));
.....
if (getimagesize($uploaded_file) === false) {
die("This is not an image!");
}
$newImage = imagecreatetruecolor($newWidth, $newHeight);
$image = imagecreatefromjpeg($uploaded_file);
imagecopyresampled($newImage, $image, $cropStartX, $cropStartY, 0, 0, $optimalWidth, $optimalHeight, $original_width, $original_height);
$exif = @exif_read_data($uploaded_file);
.....
imageinterlace($newImage, 1);
imagejpeg($newImage, $destination_file, 90);
imagedestroy($image);
imagedestroy($newImage);
Подробнее здесь: https://stackoverflow.com/questions/791 ... mage-files
Мобильная версия