Вредоносный код с помощью загрузки изображений - PullRequest
6 голосов
/ 31 мая 2011

Есть часть моего сайта, которая позволяет пользователям загружать фотографии профиля. Я беспокоюсь о том, что люди загружают вредоносный код. Я планирую ограничить типы файлов .jpg / .png / .gif / .jpeg

Я боюсь, что этого будет недостаточно. Я собираюсь изменить размер изображений на сервере. Будет ли процесс изменения размера фотографий достаточным для того, чтобы изображение действительно было изображением, а не вредоносными файлами?

Я буду использовать следующее, чтобы изменить размер фотографий. Я не буду хранить оригиналы на сервере, а имена файлов будут изменены.

imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

    imagejpeg($thumb, $fullpath, 90);

Ответы [ 3 ]

9 голосов
/ 31 мая 2011

Простое выполнение этого гарантирует, что вы работаете с изображением:

if (getimagesize($sourcePath) === false)
{
   die("Not an image !");
}

Для большей безопасности вы должны отключить выполнение PHP в папке загрузки. В .htaccess:

php_value engine off
1 голос
/ 31 мая 2011

Хороший вопрос.Я нашел ссылку, которая обсуждает это здесь:

http://www.phpclasses.org/blog/post/67-PHP-security-exploit-with-GIF-images.html

Исходя из личного опыта, я в основном разрешаю загрузку изображений только за щитом с паролями, поэтому я «знаю» своих пользователей, но я почтиТакже всегда делайте изменение размера - мне кажется, что этого будет достаточно, поскольку он уничтожит исходный файл и заменит его вашей собственной измененной версией.

0 голосов
/ 31 мая 2011

Это не проблема, потому что я не понимаю, как это могло произойти. Однако я не знаю, как работают ваши функции (вы не опубликовали исходный код).

Насколько я знаю, вводить PHP невозможно. Вы можете ввести SQL, Javascript, HTML, ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...