| Автор |
Сообщение |
|
Wave
|
Заголовок сообщения: 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'), И на этих же условиях файрфокс грузить отказывался.
|
|
 |
|
 |
|
admin
|
Заголовок сообщения: 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'
|
|
 |
|
 |
|
admin
|
Заголовок сообщения: Re: MIME types и $allowed_types Добавлено: 11 май 2009, 13:01 |
|
| Администратор |
 |
Зарегистрирован: 31 янв 2009, 18:02 Сообщения: 1302
|
|
В общем я просто переделаю CodeIgniter-uploads, чтобы не проверять эти миме. Будет только расширение смотреться.
|
|
 |
|
 |
|
librarian
|
Заголовок сообщения: Re: MIME types и $allowed_types Добавлено: 11 май 2009, 14:00 |
|
| Модератор |
 |
Зарегистрирован: 02 фев 2009, 19:06 Сообщения: 234
|
|
Нет, этого делать ни в коем случае нельзя. Проверка на mime-тип ещё одна гарантия безопасности, если в windows тип файла определяется расширением, то в *nix системах это не более чем пара лишних символов. Если расширение у файла может поменять любой дурак, то подделка mime-типа далеко не такая тривиальная задача .
_________________ Мой Блог
|
|
 |
|
 |
|
admin
|
Заголовок сообщения: Re: MIME types и $allowed_types Добавлено: 11 май 2009, 16:36 |
|
| Администратор |
 |
Зарегистрирован: 31 янв 2009, 18:02 Сообщения: 1302
|
|
Не уловил. Если я, скажем, загрузил на сервер bat под видом jpg-файла. Что меняется? Браузер всё-равно примет тот тип, который отдает сервер. Таким образом связь с исходной загрузкой вё-равно теряется.
|
|
 |
|
 |
|
librarian
|
Заголовок сообщения: Re: MIME types и $allowed_types Добавлено: 11 май 2009, 18:13 |
|
| Модератор |
 |
Зарегистрирован: 02 фев 2009, 19:06 Сообщения: 234
|
|
Ага, только таким образом php не позволит загрузить php-шелл, например. То есть ситуация примерно такая - загрузили шелл с расширением .jpg, для линуксовой машины никакой разницы нет, какое расширение у файла, она его может и как php скрипт обработать. Многое работает через неправильную настройку вебсервера и плохую обработку входных данных.
_________________ Мой Блог
|
|
 |
|
 |
|
Wave
|
Заголовок сообщения: Re: MIME types и $allowed_types Добавлено: 11 май 2009, 18:43 |
|
| Модератор |
 |
Зарегистрирован: 01 фев 2009, 16:38 Сообщения: 1080 Откуда: Харьков
|
|
Тут я согласен с librarian, проверка на mime — дополнительная преграда взломщикам. Лучше бы всё же разобраться, как и тип проверить, и от любого браузера при этом файлик принять. Повторяю, файрфокс у меня так и не захотел аплоадить, при 'application/octet-stream' в том числе. Оперой не проверял.
|
|
 |
|
 |
|
admin
|
Заголовок сообщения: Re: MIME types и $allowed_types Добавлено: 11 май 2009, 19:02 |
|
| Администратор |
 |
Зарегистрирован: 31 янв 2009, 18:02 Сообщения: 1302
|
Да ну!  Объясните мне каким макаром сервер определяет mime-тип?
|
|
 |
|
 |
|
Wave
|
Заголовок сообщения: 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.
|
|
 |
|
 |
|
admin
|
Заголовок сообщения: Re: MIME types и $allowed_types Добавлено: 20 май 2009, 06:25 |
|
| Администратор |
 |
Зарегистрирован: 31 янв 2009, 18:02 Сообщения: 1302
|
|
Специально проверил. Берем любой exe-файл. Меняем у него расширение на jpg. Загружаем и видим, что mime-тип определился как «image/jpeg». Следовательно тип определяется по расширению.
Далее. Речь идет о загрузке на сервер. Ну загрузит юзер exe-шник на сервер, и что? В чем проблема-то?
|
|
 |
|
 |
|