Безопасная загрузка файлов

nikonlay
На сайте с 11.12.2006
Offline
191
501

Доброго дня!

У меня в админке одного из сайтов есть возможность загружать изображения товаров для каталога. Движок и админка самописные на пхп

В настоящий момент файл, отвечающий за загрузку выглядит таким образом:

<?php include_once'blocks/auth.php';

$uploaddir = '../public/img/';
$file = $uploaddir . basename($_FILES['uploadfile']['name']);

if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) {
echo "success";
} else {
echo "error";
}
?>

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

Подскажите, можно ли как-то более безопасной сделать загрузку через этот файл?

Мощные фонари и телескоп: https://market.yandex.ru/business/79203856
LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#1

1. После загрузки проверять:

http://php.net/manual/en/function.getimagesize.php

Картинка ли это вообще, если нет. То ошибка.

2. В папке /public/img/ запретить выполнение PHP кода через настройки .hta

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
nikonlay
На сайте с 11.12.2006
Offline
191
#2

LEOnidUKG, спасибо за столь бытрый ответ и сразу по делу! Только успел соседнюю тему глянуть, смотрю - уже ответ ) Пойду гуглить теперь, как это реализовать

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#3

Инфа есть тут: https://habrahabr.ru/post/44610/ с кодом

nikonlay
На сайте с 11.12.2006
Offline
191
#4

И еще раз спасибо! даже погуглить не успел, )

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий