Накидал такой вот код... Хотелось бы узнать на сколько он безопасен и есть ли шанс через него залить шелл?
/* Проверяем, если нет папки, то создаем ее */
if (!file_exists('./upload')) { mkdir('./upload', 0422, true); }
/* Оперделяем папку для загрузки файлов */
$dir = './upload/';
/* Присваиваем файлу новое имя*/
$name = ''.time().date('Y').rand(1111,9999).'';
/* Присваиваем файлу новый формат */
$type = '.jpg';
/* Связываем все вместе для удобства */
$upload = ''.$dir.$name.$type.'';
/* Максимальный размер файла: 5 мб */
$maxsize = 1024*1024*5;
/* Масив сообщений по коду ошибок */
$message = array(0 => 'Файл был успешно загружен на сервер',
1 => 'Размер принятого файла превысил максимально допустимый размер',
2 => 'Размер загружаемого файла превысил значение MAX_FILE_SIZE',
3 => 'Загружаемый файл был получен только частично',
4 => 'Файл не был загружен',
6 => 'Отсутствует временная папка',
7 => 'Не удалось записать файл на диск',
8 => 'PHP-расширение остановило загрузку файла');
/* Проверям, не привышает ли файл допустимый размер */
if($_FILES['file']['size'] != 0 and $_FILES['file']['size'] <= $maxsize){
/* Загружаем файл и помещаем во временную папку */
if (move_uploaded_file($_FILES['file']['tmp_name'], $upload)){
/* Начинаем проверку файла с помощью php функции */
$size = getimagesize($upload);
/* Проверяем, соответствует ли mime тип или это вредоносный код */
if($size[mime] == 'image/gif' || $size[mime] == 'image/jpeg' || $size[mime] == 'image/png'){
/* Проверяем, соответствует ли картинка выставленным максимальным значениям: ширина 1500 высота 500 */
}elseif ($size[0] < 1501 && $size[1] < 501){
/* Все хорошо */
}else{
/* Покажем ощибку */
print($message[$_FILES['file']['error']]);
/* Если нет, то удаляем файл*/
unlink($upload);
}
}}
?>
<hr>
<form enctype="multipart/form-data" action="/index.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="1048512"/>
Отправить этот файл: <input name="file" type="file" />
<input type="submit" value="Отправить файл" />
</form>