Избегайте вредоносного кода PHP, скрытого в загруженных файлах изображений? [дубликат]Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Избегайте вредоносного кода PHP, скрытого в загруженных файлах изображений? [дубликат]

Сообщение Anonymous »

Я создал класс PHP, который использую для изменения размера загруженных изображений.
Класс проверяет расширение файла и, соответственно, вызывает соответствующую функцию для начала редактирования изображения, например 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»