4 / 4 / 5
Регистрация: 20.09.2014
Сообщений: 307
|
||||||
1 | ||||||
Как узнать файл это картинка или нет18.09.2016, 16:24. Показов 10532. Ответов 20
Метки нет (Все метки)
делаю загрузку файлов, есть вариант, но столкнулся с проблемой, файл картинка не показывает тип $_FILES['userfile']['type'] вообще... Может у кого есть другие решения?
0
|
18.09.2016, 16:24 | |
Ответы с готовыми решениями:
20
Как осуществлять проверку на то, картинка это или нет ? Как узнать ссылка это или файл из командной строки Как узнать является файл каталогом или нет? Как узнать, скачался файл из Интернета или нет? |
Заблокирован
|
|
18.09.2016, 16:35 | 2 |
По расширению.
Добавлено через 1 минуту Вам в любом случае нужно делать проверку по расширению, чтобы не загрузили серверные скрипты и т.п.
0
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
18.09.2016, 16:43 | 3 |
Проверять размер функцией getimagesize, если функция вернула false - это не картинка.
0
|
Web Programmer
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
|
||||||
18.09.2016, 17:06 | 5 | |||||
mozg-bolit,
1
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|
18.09.2016, 17:43 | 6 |
0
|
Software Engineer
289 / 252 / 53
Регистрация: 23.09.2014
Сообщений: 859
|
|
18.09.2016, 20:03 | 7 |
2
|
54 / 24 / 5
Регистрация: 21.02.2016
Сообщений: 234
|
||||||
19.09.2016, 00:11 | 8 | |||||
я проверяю сами "буквы" в имени файла: если буквы jpg есть в имени файла,если есть буквы gif в имени файла
сам придумал,не хочу использовать этот "filename[type]" )
0
|
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
|
|||||||||||
19.09.2016, 00:58 | 9 | ||||||||||
2) например такой файл пройдет проверку: mp3.php 3) Тогда уж
0
|
18 / 17 / 2
Регистрация: 11.01.2013
Сообщений: 109
|
|
19.09.2016, 11:54 | 10 |
Использовать проверку вхождения ключевого слова расширение файла - плохая практика. Как написано выше - проверять MIME type файла
0
|
Web Programmer
325 / 286 / 121
Регистрация: 28.09.2011
Сообщений: 1,570
|
|
19.09.2016, 14:05 | 11 |
nobodyvlv, и что же плохого?
0
|
18 / 17 / 2
Регистрация: 11.01.2013
Сообщений: 109
|
|
19.09.2016, 18:54 | 12 |
Залить вредоносный скрипт под "проверяемым" расширением не составит труда. Речь идет о безопасности ресурса, а быть может и всего сервера хостинга где крутится первый.
0
|
Заблокирован
|
|
19.09.2016, 19:11 | 13 |
nobodyvlv, вы не совсем правы. Сам MIME-тип часто определяется по расширению, так что это вас не спасет.
Добавлено через 1 минуту Залить не составит, но это хотя бы воспрепятствует его выполнению.
1
|
18 / 17 / 2
Регистрация: 11.01.2013
Сообщений: 109
|
|
19.09.2016, 23:10 | 14 |
Сменить вручную расширение, залить какой-то шелл и выполнить - вот цена проверки по расширению. Конкретно тот класс finfo_file() судя по документации читает байт массив заголовка файла и по нему определяет тип содержимого, а не по расширению. Это не раз разжовывалось и на форумах, и на хабре, и на stackoverflow - я просто не буду повторяться и пересказывать уже сказанные вещи. Да, может и не выполниться, но это при условии выставленных прав.
Вот выше человек тоже замечательную функцию предложил exif_imagetype() для заливаемых изображений. Можно поступать иначе, если взять в рассчет "магические числа" https://en.wikipedia.org/wiki/... gic_number. Прочесть первые несколько байт и проверить по таблице нужные форматы https://en.wikipedia.org/wiki/... signatures. Но как по мне это садомазо, но имеет место жить и оно))
0
|
Заблокирован
|
|
19.09.2016, 23:21 | 15 |
Выполнить не получится при вменяемых настройках.
0
|
461 / 369 / 94
Регистрация: 01.05.2010
Сообщений: 1,761
|
|||||||||||
20.09.2016, 11:19 | 16 | ||||||||||
Не проверяйте по расширению. Я легко создам php файл с вредоносным кодом cool_image.png и залью его на сайт в этом случае. А потом у вас на сайте будет выводится такой html:
И самое интересное, в конец файла я запихну такой код:
Добавлено через 6 минут И если логин и пароль от БД получить не удастся (обычно они хранятся в одном из файлов), то можно со злости грохнуть все файлы
0
|
18 / 17 / 2
Регистрация: 11.01.2013
Сообщений: 109
|
|
20.09.2016, 12:04 | 17 |
А я о чем написал??
Спасибо, что поддержали мои слова) По этому поводу я и спорю, что это не лучшая практика.
0
|
4 / 4 / 5
Регистрация: 20.09.2014
Сообщений: 307
|
|
25.09.2016, 20:55 [ТС] | 18 |
Пожалуйста можете скинуть пример с функцией exif_imagetype() ??
0
|
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
|
|
25.09.2016, 21:07 | 19 |
1
|
4 / 4 / 5
Регистрация: 20.09.2014
Сообщений: 307
|
||||||
25.09.2016, 22:42 [ТС] | 20 | |||||
Почему картинка выдает ошибку, я её как то не правильно переименовываю, почему картинка не показывается ?
0
|
25.09.2016, 22:42 | |
25.09.2016, 22:42 | |
Помогаю со студенческими работами здесь
20
Как узнать, отправился ли файл на FTP-сервер или нет? Как посредством VBA узнать открыт XLS файл или нет Как узнать сколько файлов в каталоге, и проверить, существует такой файл, или нет? Узнать используется (записывается) файл или нет Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |