2015-10-10 6 views
0

Я создаю функцию загрузки на моем проекте. Я проделал другую проверку на существование, размер и тип, но было еще несколько необходимых валидаций. Я узнал о проверке mime, где независимо от того, какое расширение файла пользователь загружает, он проверяет реальную file.Below код сделал это для меня. Теперь, когда пользователь пытается загрузить файл .php как .png/jpg/jpeg или любое другое поддельное имя расширения, мой код ловит как тип вредоносного файла. Но у меня есть вопрос, что когда пользователь сначала загружает файл во временную директорию. Используется ли временный каталог с клиентского компьютера или с нашего сервера? Если это с нашего сервера, то этот вредоносный файл поддельного расширения может быть опасным для нас или нет?В каком временном каталоге используется сценарий загрузки?

$imageInfo = getimagesize($_FILES['file']['tmp_name']); 

    if ($imageInfo['mime'] == ("image/png") || $imageInfo['mime'] == ("image/jpeg") 
      || $imageInfo['mime'] == ("image/jpg")) { 
+0

Приложение для загрузки предназначено только для изображения типа файла. (Jpg, jpeg и png - единственное расширение изображения, которое поддерживает мое приложение для загрузки) –

ответ

1

От manual:

Files, по умолчанию сохраняется во временном каталоге по умолчанию сервера, если иное не указано с директивой upload_tmp_dir в php.ini. Каталог по умолчанию сервера можно изменить, установив переменную окружения TMPDIR в среду, в которой работает PHP.

Файл будет удален из временного каталога в конце запроса, если он не был перемещен в сторону или переименован.


Если вы делаете что-то намеренно глупое как файлы, запускаемые, найденных в пределах этого временного каталога, или заставить их быть запущен, вы в порядке. Для файла не опасно просто существовать в течение короткого периода времени только для его удаления.

0

первого расширение прибудет затем использовать расширение, если условие так:

$extension = image_type_to_extension($imageInfo[2]); 
+0

Функция getimagesize() будет определять размер любого заданного файла изображения и возвращать размеры наряду с типом файла и текстовой строкой высоты/ширины, которая будет использоваться в обычном теге HTML IMG и соответствующем типе содержимого HTTP. –

+1

распечатать $ extension, затем проверить получить расширение или нет –

+1

и просмотреть URL-адрес: http://stackoverflow.com/questions/14746518/get-image-extension –

1

каталог temp находится на вашем сервере, и вы можете выполнять файлы в каталоге temp, поэтому вы можете запустить sys_get_temp_dir(), чтобы вы могли узнать расположение временного каталога и изменить разрешение на чтение и запись только.

Смежные вопросы