[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Загрузка файлов
user_name
Добрый день,
Будет ли это безопасно?
$imagePath = SITE_PATH.'/uploads/design/'.$user.'/';
$allowedExts = array("jpeg", "jpg", "JPEG", "JPG", "png", "PNG", "psd", "PSD", "ai", "AI");
$temp = explode(".", $_FILES["file_print"]["name"]);
$extension = end($temp);
$file_name = date('YmdHis').rand(100,1000).'_design.'.$extension;
if(in_array($extension, $allowedExts)){
$file_temp_name = $_FILES["file_print"]["tmp_name"];
move_uploaded_file($file_temp_name, $imagePath . $file_name);
}


Сможет ли пройти php скрипт?
inpost
Абсолютно не безопасно. wink.gif wink.gif wink.gif

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Guest
А почему?

inpost
Долго писать. Погугли безопасную загрузку файлов на сервер. Там большие статьи.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
andrey888
Guest как минимум используй imagecopyresized

_____________
Прогноз на следующие 5 лет : Россия, Китай - две величайшие державы.
США в Ж*пе. Справедливость восторжествует. )
123456
если это изображение, то лучше всего, перерисовать его и сохранить перерисованную версию.
В твоем случае, то загружаешь на сервер файл пользователя, что не безопасно
user_name
Прочитал много об этом, с изображениями все понятно, проверки на расширение не достаточно потому что в самом изображении могут быть выполняемые скрипты, поэтому нужно их перерисовывать чтобы оттуда удалилось все ненужное.. и то этого не достаточно для полной безопасности. А что если мне другие файлы нужно загружать, например архивы? Вообще нельзя безопасно сделать?
AllesKlar
Цитата (user_name @ 4.08.2015 - 13:45)
Прочитал много об этом, с изображениями все понятно, проверки на расширение не достаточно потому что в самом изображении могут быть выполняемые скрипты, поэтому нужно их перерисовывать чтобы оттуда удалилось все ненужное.. и то этого не достаточно для полной безопасности. А что если мне другие файлы нужно загружать, например архивы? Вообще нельзя безопасно сделать?

Загружай архивы. Хоть бананы загружай.
Просто файлы нужно загружать за пределы папки www, а отдавать их скриптом.
Это карантирует то, что если какая хрень и прилетит с файлом, выполнить ее всё равно не удастся.

up ---
как мило опечатался smile.gif
Цитата
Это карантирует
имелось ввиду "гарантирует", но "карантирует" более точно передает смысл идеи smile.gif

_____________
[продано копирайтерам]
user_name
А конфигурационный файл тоже лучше за пределами www хранить? А можно просто через .htaccess как то ограничить доступ?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.