MaxSite CMS    Регистрация    Вход    Форум    Поиск    FAQ     RSS

Список форумов » Разработка » Найденные ошибки и замечания




Начать новую тему Ответить на тему  [ Сообщений: 12 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: MIME types и $allowed_types
 Сообщение Добавлено: 11 май 2009, 10:38 
Модератор
Аватара пользователя

Зарегистрирован: 01 фев 2009, 16:38
Сообщения: 1080
Откуда: Харьков
Максим, добавь в mimes.php
Код:
            'rar'   =>   'application/rar',
            '7z'   =>   'application/x-7z-compressed',
            'flv'   =>   array('video/x-flv', 'flv-application/octet-stream'),
Без этого rar\7z
Код:
   // разрешенные типы файлов
   $allowed_types = 'mp3|gif|jpg|jpeg|png|zip|txt|rar|doc|rtf|pdf|html|htm|css|xml|odt|flv|swf|wav|xls|7z';
в загрузке файлов не работает. Пробовал на разных хостингах. Везде выдаёт
Цитата:
Ошибка загрузки файла.

Вы пытаетесь загрузить запрещенный тип файла.


Впрочем, flv у меня так и не запахал.

P.s. Порыскав по гуглю и форуму CI, сменил браузер. Эксплорером загрузил. Правда при этом в mimes.php стояло аж
'flv' => array('video/x-flv', 'flv-application/octet-stream', 'application/octet-stream', 'text/plain'),
И на этих же условиях файрфокс грузить отказывался.


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: Re: MIME types и $allowed_types
 Сообщение Добавлено: 11 май 2009, 12:50 
Администратор
Аватара пользователя

Зарегистрирован: 31 янв 2009, 18:02
Сообщения: 1302
Да, намудрили в CodeIgniter с этими mime-типами...

В общем браузер отдает свой mime, который CodeIgniterb проверяет. У меня получилось так:

Код:
            'gz'   =>   array('application/octet-stream', 'application/gzip'),
            'rar'   =>   'application/octet-stream',
            '7z'   =>   'application/octet-stream',
            'flv'   =>   'application/octet-stream'


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: Re: MIME types и $allowed_types
 Сообщение Добавлено: 11 май 2009, 13:01 
Администратор
Аватара пользователя

Зарегистрирован: 31 янв 2009, 18:02
Сообщения: 1302
В общем я просто переделаю CodeIgniter-uploads, чтобы не проверять эти миме. Будет только расширение смотреться.


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: Re: MIME types и $allowed_types
 Сообщение Добавлено: 11 май 2009, 14:00 
Модератор
Аватара пользователя

Зарегистрирован: 02 фев 2009, 19:06
Сообщения: 234
Нет, этого делать ни в коем случае нельзя. Проверка на mime-тип ещё одна гарантия безопасности, если в windows тип файла определяется расширением, то в *nix системах это не более чем пара лишних символов. Если расширение у файла может поменять любой дурак, то подделка mime-типа далеко не такая тривиальная задача .

_________________
Изображение
Мой Блог


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: Re: MIME types и $allowed_types
 Сообщение Добавлено: 11 май 2009, 16:36 
Администратор
Аватара пользователя

Зарегистрирован: 31 янв 2009, 18:02
Сообщения: 1302
Не уловил. Если я, скажем, загрузил на сервер bat под видом jpg-файла. Что меняется? Браузер всё-равно примет тот тип, который отдает сервер. Таким образом связь с исходной загрузкой вё-равно теряется.


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: Re: MIME types и $allowed_types
 Сообщение Добавлено: 11 май 2009, 18:13 
Модератор
Аватара пользователя

Зарегистрирован: 02 фев 2009, 19:06
Сообщения: 234
Ага, только таким образом php не позволит загрузить php-шелл, например. То есть ситуация примерно такая - загрузили шелл с расширением .jpg, для линуксовой машины никакой разницы нет, какое расширение у файла, она его может и как php скрипт обработать. Многое работает через неправильную настройку вебсервера и плохую обработку входных данных.

_________________
Изображение
Мой Блог


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: Re: MIME types и $allowed_types
 Сообщение Добавлено: 11 май 2009, 18:43 
Модератор
Аватара пользователя

Зарегистрирован: 01 фев 2009, 16:38
Сообщения: 1080
Откуда: Харьков
Тут я согласен с librarian, проверка на mime — дополнительная преграда взломщикам. Лучше бы всё же разобраться, как и тип проверить, и от любого браузера при этом файлик принять.
Повторяю, файрфокс у меня так и не захотел аплоадить, при 'application/octet-stream' в том числе. Оперой не проверял.


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: Re: MIME types и $allowed_types
 Сообщение Добавлено: 11 май 2009, 19:02 
Администратор
Аватара пользователя

Зарегистрирован: 31 янв 2009, 18:02
Сообщения: 1302
Да ну! ;) Объясните мне каким макаром сервер определяет mime-тип?


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: Re: MIME types и $allowed_types
 Сообщение Добавлено: 19 май 2009, 22:16 
Модератор
Аватара пользователя

Зарегистрирован: 01 фев 2009, 16:38
Сообщения: 1080
Откуда: Харьков
Ладно, апач по расширениям, прописанным в конфигах. Но всё равно, если при таких раскладах загрузить экзешник с расширением rar, то пользователь его сохранит. А там уже х его з, что и как у пользователя настроено. Может быть и запустит.
Ну а как получить доступ к shell сервера и запустить там скрипт — не в курсе, не линуксоид и не админ серверов ни разу. Но раз уж в разных источниках советуют всяческие драконовы меры для обеспечения безопасности, то я бы всё же оставил проверку mime. И кстати, добавил бы (точнее, недавно пришлось добавить) 'wmv' => 'video/x-ms-wmv', и wmv в список allowed_types.


Вернуться к началу 
 Профиль  
 
 Заголовок сообщения: Re: MIME types и $allowed_types
 Сообщение Добавлено: 20 май 2009, 06:25 
Администратор
Аватара пользователя

Зарегистрирован: 31 янв 2009, 18:02
Сообщения: 1302
Специально проверил. Берем любой exe-файл. Меняем у него расширение на jpg. Загружаем и видим, что mime-тип определился как «image/jpeg». Следовательно тип определяется по расширению.

Далее. Речь идет о загрузке на сервер. Ну загрузит юзер exe-шник на сервер, и что? В чем проблема-то?


Вернуться к началу 
 Профиль  
 
Показать сообщения за:  Поле сортировки  
 
Начать новую тему Ответить на тему  [ Сообщений: 12 ]  На страницу 1, 2  След.

Список форумов » Разработка » Найденные ошибки и замечания


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

 
 

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

Найти:
Перейти: