Вернуться   Форум SAPE.RU > Общие вопросы > Разработка и сопровождение сайтов

-->
Ответ
 
Опции темы
Старый 11.03.2010, 15:13   #1
Мафиози
 
Аватар для Русская мафия
 
Регистрация: 11.09.2008
Адрес: <H1></H1>
Сообщений: 1,174
Вес репутации: 248
Русская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущее
Question Делаю скрипт загрузки файлов, подскажите по безопасности

http://habrahabr.ru/blogs/php/44610/

Прочитал эту статью, и не понял, хватит ли мне всего одного этого метода -

Цитата:
Проверка расширения загружаемого файла
Читатель этой статьи мог бы задаться вопросом, почему мы просто не проверяем расширение загруженного файла? Если мы не позволим загружать файлы *.php, то сервер никогда не сможет выполнить этот файл как скрипт. Давайте рассмотрим и этот подход.

Мы можем сделать черный список расширений файла и проверить имя загружаемого файла, игнорируя загрузку файла с выполняемыми расширениями (upload4.php):
PHP код:
<?php
 $blacklist 
= array(".php"".phtml"".php3"".php4");
 foreach (
$blacklist as $item) {
  if(
preg_match("/$item\$/i"$_FILES['userfile']['name'])) {
   echo 
"We do not allow uploading PHP files\n";
   exit;
   }
  }

  
$uploaddir 'uploads/';
  
$uploadfile $uploaddir basename($_FILES['userfile']['name']);

  if (
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
   echo 
"File is valid, and was successfully uploaded.\n";
  } else {
   echo 
"File uploading failed.\n";
  }
?>
Достаточно ли делать при загрузки только проверку на чёрный список, чтоб быть спокойным за безопасность?
__________________
Как дела?
Русская мафия вне форума   Ответить с цитированием
Старый 11.03.2010, 15:16   #2
Эксперт
 
Аватар для MonAmur
 
Регистрация: 03.07.2007
Адрес: Chinatown
Сообщений: 7,265
Вес репутации: 614
MonAmur - прекрасное будущееMonAmur - прекрасное будущееMonAmur - прекрасное будущееMonAmur - прекрасное будущееMonAmur - прекрасное будущееMonAmur - прекрасное будущееMonAmur - прекрасное будущееMonAmur - прекрасное будущееMonAmur - прекрасное будущееMonAmur - прекрасное будущееMonAmur - прекрасное будущее
По умолчанию

имхо, лучше сделать список разрешенных форматов файлов.
Разрешённые типы файлов: bmp doc gif jpe jpeg jpg pdf png psd txt zip
MonAmur вне форума   Ответить с цитированием
Старый 11.03.2010, 15:19   #3
Мафиози
 
Аватар для Русская мафия
 
Регистрация: 11.09.2008
Адрес: <H1></H1>
Сообщений: 1,174
Вес репутации: 248
Русская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущее
По умолчанию

MonAmur, а почему нельзя чёрный список? Узнать у хостера список форматов, которые выполняются на сервере и в чёрный лист всё
__________________
Как дела?
Русская мафия вне форума   Ответить с цитированием
Старый 11.03.2010, 15:21   #4
Мастер
 
Регистрация: 17.03.2008
Сообщений: 638
Вес репутации: 242
ahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущее
По умолчанию

а потом они сменят/установят какое-нить ПО и снова скрипт править
ahsinis вне форума   Ответить с цитированием
Старый 11.03.2010, 15:25   #5
Мафиози
 
Аватар для Русская мафия
 
Регистрация: 11.09.2008
Адрес: <H1></H1>
Сообщений: 1,174
Вес репутации: 248
Русская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущееРусская мафия - прекрасное будущее
По умолчанию

Цитата:
Сообщение от ahsinis Посмотреть сообщение
а потом они сменят/установят какое-нить ПО и снова скрипт править
ну поправить не проблема мне просто нужно чтоб любые форматы загружались. кроме чёрного списка конечно же.
Есть ещё опасности, кроме того что сменить ПО может хостер?
__________________
Как дела?
Русская мафия вне форума   Ответить с цитированием
Старый 11.03.2010, 18:12   #6
Новичок
 
Регистрация: 12.10.2009
Сообщений: 48
Вес репутации: 183
qwint скоро станет известен
По умолчанию

статья правильная, вопрос в том что именно вы хотите загрузить :-) можно и в графику код запихнуть... можно открывать файл и искать в нем include print <? и прочую хрень, можно настроить сервак с отключением выполнения php кода в той папке в которую грузите что либо

и естественно проверка расширения и mime типа если он есть и нужен
qwint вне форума   Ответить с цитированием
Старый 11.03.2010, 18:36   #7
Специалист
 
Регистрация: 19.11.2009
Сообщений: 157
Вес репутации: 186
sylex - весьма и весьма положительная личностьsylex - весьма и весьма положительная личностьsylex - весьма и весьма положительная личность
По умолчанию

в принципе безопасно, но все же лучше список допустимых расширений... так надежней... зачем разрешать грузить что попало?

Кто знает, какие настройки хостинга к примеру, и может скоро по дефолту будет ставиться какой-нить .php6, а у вас нет проверки на это, вы забыли, это было год назад, не проверяли - тут хоп, можно загрузить и выполнить)))

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

Я делаю "список допустимых расширений", имя файла генерю сам уникальное + расшиерние, так 100% безопасно... Можно еще в папке запретить выполнение скриптов.
sylex вне форума   Ответить с цитированием
Старый 11.03.2010, 19:18   #8
Эксперт
 
Аватар для extruder
 
Регистрация: 27.03.2009
Сообщений: 1,239
Вес репутации: 240
extruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущееextruder - прекрасное будущее
По умолчанию

А может проще сделать.
Выполнение через .htaccess разрешить только избранным, например php.
Грузить можно все, кроме избранных.
extruder вне форума   Ответить с цитированием
Старый 12.03.2010, 11:07   #9
Новичок
 
Регистрация: 15.07.2008
Сообщений: 2
Вес репутации: 0
Zloyz скоро станет известен
По умолчанию

Список запрещенных не особо помогает, делать лучше через список разрешенных, потому что как известно есть одна недоработка апача, например можно загрузить файл somebadfile.php.1 и он будет обрабатыватся как пхп файл (исполнятся) а проверку на "плохой" файл пройдет
Zloyz вне форума   Ответить с цитированием
Старый 12.03.2010, 14:05   #10
Мастер
 
Регистрация: 17.03.2008
Сообщений: 638
Вес репутации: 242
ahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущееahsinis - прекрасное будущее
По умолчанию

На самом деле все можно разрешить загружать, если запретить доступ к файлам напрямую через вебсервер (как например на форумах вложения делают)
Тогда пользователю надо отдавать файл через скрипт (правда при этом может увеличиться нагрузка на сервер при скачивании файлов)
ahsinis вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите где я не так делаю? nibbl Установка кода на различные движки 2 06.09.2009 23:57
Подскажите программу для массового сравнения файлов Grush Курилка 5 09.08.2009 10:03
Подскажите что я не так делаю? Alexan Яндекс 21 25.08.2008 23:01
Убыстрение загрузки JS и CSS файлов. Kashey Разработка и сопровождение сайтов 9 02.02.2008 13:33


Часовой пояс GMT +3, время: 10:42.