X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Загрузка нескольких файлов на сервер одновременно
sc2r2bey
sc2r2bey
Topic Starter сообщение 7.10.2010, 15:12; Ответить: sc2r2bey
Сообщение #1


мультизагрузка

[php]<?php
$uploaddir = '../../media/original/';
for ($i=0; $i<count($_FILES['photo']['name']); $i++)
{
if ($_FILES['photo']['error'][$i] == 0)
{
$uploadfile = $uploaddir . $_FILES['photo']['name'][$i];
$type = getimagesize($_FILES['photo']['tmp_name'][$i]);
if ($type[2] == 1 || $type[2] == 2 || $type[2] == 3 )
{
if (move_uploaded_file($_FILES['photo']['tmp_name'][$i], $uploadfile))
{
echo "Файл успешно загружен.<br />";
}
else
{
echo "<span class=\"error\">1Файл не был загружен на сервер.</span><br />";
}
}
else
{
echo "<span class=\"error\">2Файл не является изображением.</span><br />";
}
}
else
{
echo "<span class=\"error\">3Файл не был загружен на сервер.</span><br />";
}
}
?>[/php]

как добавить проверку на пустые поля и удаление их из массива?
Как тут проверять расширение?
Какие тут могут быть атаки, и как защититься от них?


--------------------
Заметки о разработке и не только
программирую web и для we


Поблагодарили: (1)
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 9.10.2010, 2:09; Ответить: ZiTosS
Сообщение #2


sc2r2bey,
как добавить проверку на пустые поля и удаление их из массива?

По-моему я использовал is_uploaded_file()
Как тут проверять расширение?

Если работаешь точно с картинками, нужно проверять не расширение а MIME-тип. Проверяется всё очень просто.
В цикле вытаскиваем Mime текущей перебираемой картинки и сравниваем, встречается ли такой MIME в массиве разрешенных. Если да, то пропускаем, если нет, то удаляем файл + выдаём ошибку в несоответствии.
Какие тут могут быть атаки, и как защититься от них?

1) Загрузка исполняемых файлов с двойным расширением - решение - сверка MIME + проверка последнего расширения на соответствие.
2) Загрузка недопустимо больших файлов - проверяем настройки PHP и если что предупреждаем
3) Пропуск файла(пусто) в одном из полей мультизагрузки для выявления ошибок в работе и дыр в скрипте - решение - делаем тщательную проверку каждого загруженного файла на его наличие

Более надо продумывать, всё ято надумал пока что :)

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) BuxarVideoUploader - Автоматическое скачивание и загрузка видео из любых/ на любые видео хостинги (YouTube, TikTok, Instagram, Facebook, Яндекс Дзен, Вконтакте, Одноклассники, Rutube, Dailymotion, d.tube, Telegram и т.д.
0 BuxarNET 1224 19.7.2023, 5:58
автор: BuxarNET
Открытая тема (нет новых ответов) Требуется помощник SEO специалиста для нескольких проектов
начинающий или middle
2 tiptopvkr 1470 2.12.2022, 12:11
автор: tiptopvkr
Открытая тема (нет новых ответов) Необходим SEO-специалист для нескольких проектов
2 tiptopvkr 1705 18.7.2022, 15:39
автор: yefedor
Открытая тема (нет новых ответов) FinFile - новые возможности для монетизации Ваших файлов!
3 FileXmaster 2080 25.7.2020, 16:10
автор: -Condis-
Открытая тема (нет новых ответов) Размещение ваших ссылок и статей на нескольких сайтах
28 maxmer 14711 4.2.2020, 18:37
автор: maxmer


 



RSS Текстовая версия Сейчас: 20.4.2024, 7:33
Дизайн