Добрый день!
Достаточно ли безопасен данный способ для загрузки изображений на сервер?
upload.php
<?php
$AllowFileExtension = array(
'jpg',
'png',
'jpeg'
);
$FileExtension = pathinfo(strtolower($_FILES['file']['name'][0]), PATHINFO_EXTENSION);
if (!in_array($FileExtension, $AllowFileExtension)) {
die('Разрешенные форматы файла: jpg, jpeg, png.');
}
$TempName = $_FILES['file']['tmp_name'][0];
if (filesize($TempName) > 10485760) {
die('Размер изображения не должен превышать 10МБ.');
}
$imageinfo = getimagesize($TempName);
if ($imageinfo['mime'] != 'image/jpeg' && $imageinfo['mime'] != 'image/png') {
die('Разрешенные форматы файла: jpg, jpeg, png.');
}
$NewFileName = (md5(uniqid() . strtolower($_FILES['file']['name'][0]))) . '.' . $FileExtension;
$UploadDir = "/img/";
$NewFilePatch = $UploadDir . $NewFileName;
if (!is_writable($UploadDir)) {
die('Каталог недоступен для записи.');
}
$CopyFile = copy($TempName, $NewFilePatch);
if (!$CopyFile) {
die('Неудалось сохранить файл.');
}
?>
В папке
img находится .htaccess со следующем содержанием
<FilesMatch "\.(php|cgi|pl|php3|php4|php5|php6|phps|phtml|shtml|py)$">
Order allow,deny
Deny from all
</FilesMatch>