Intereting Posts
Как я могу использовать ссылки на массивы внутри массивов в PHP? Добавить сообщение проверки в fieldset вместо js popup как вставить специальный символ в mysql через php и отобразить на html-странице Чтение данных из базы данных MySQL в таблицу HTML? Как трюк XOR для замены двух переменных действительно работает на строке? Несоответствие второстепенных версий заголовков и клиентской библиотеки Получение динамического вывода HTML из другой страницы на сервере (возможно, file_get_contents) Запуск PHP через работу Cron Получите все записи из базы данных MySQL, которые находятся в Картах Google .getBounds? Как управлять ролями пользователей в базе данных? Как я могу исправить эту неопределенную ошибку индекса? JQuery Ajax для PHP «Строка не может быть проанализирована как XML» ошибка php Временное удаление HTML из строки для API Google Translate для снижения стоимости Скопируйте AMI в отдельный регион из отдельной учетной записи PHP: как скопировать файл временного файла в несколько мест?

Могу ли я доверять типу файла из $ _FILES?

Могу ли я доверять типу файла из $_FILES при загрузке изображений? Или мне нужно снова проверить exif_imagetype() ?

Из документации :

Тип mime файла, если браузер предоставил эту информацию. Примером может служить «image / gif». Этот тип mime, однако, не проверяется на стороне PHP и поэтому не принимает его значение как должное.

Никогда не доверяйте чему-либо, что приходит извне, особенно при загрузке файлов!

Проверьте размер, местоположение, mime / type, extenstion и все остальное, что вы можете проверить!

Нет, вы не можете доверять $_FILES['userfile']['type'] . Значение, присутствующее в этой переменной, может быть подделано. Вы можете использовать finfo_file для более надежного определения типа файла:

 $finfo = finfo_open(FILEINFO_MIME_TYPE); // we need mime type echo finfo_file($finfo, "/path/to/uploaded/file"); // displays something like image/gif finfo_close($finfo); 

Для этих функций требуется PHP> = 5.3.0.

Я всегда использую следующую функцию для проверки правильных изображений:

 function Check_Image($Filename) { if ($Check_Image = @getimagesize($Filename)) { return TRUE; } return FALSE; } 

Нет, вы не можете доверять ему, потому что эта информация предоставляется клиентским браузером .

$_FILES['userfile']['type'] Тип mime файла, если браузер предоставил эту информацию. Примером может служить «image / gif». Этот тип mime, однако, не проверяется на стороне PHP и поэтому не принимает его значение как должное.