Мне нужны ваши предложения для проверки файла изображения. Если пользователь загрузит какой-либо файл с измененным типом расширения, например (jpg, jpeg, bmp, png), как мы выясним это в PHP?
Я не хочу проверять только расширения типов файлов, но я хочу знать, что загруженный файл не является вредоносным файлом, изменив его тип расширения.
Например: у нас есть файл hack.php, и мы изменим его с помощью файла hack.jpg, чтобы мы могли определить, что это недопустимый файл.
я использую mime_content_type если существует. Еще выполнить команду Linux file -i -b
на файл, чтобы получить ответ.
Рассмотрим функцию следующим образом:
function getFileType($file_name) {
if(! function_exists('mime_content_type')) {
$isUnix = strtoupper(substr(PHP_OS, 0, 3)) !== 'WIN' && DIRECTORY_SEPARATOR === '/';
// check whether operating system is that of a UNIX type.
if ($isUnix) {
$type = null;
exec('file -i -b ' . realpath($file_name), $type);
$parts = @ explode(";", $type[0]); // can be of format text/plain; charset=us-ascii
return trim($parts[0]);
}
// the file program/command does not exist on Windows.
else {
return null;
}
} else {
return mime_content_type($file_name);
}
}
Вы также можете использовать FINFO-файл это ты предпочитаешь.
Других решений пока нет …