Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Как проверить, что загружаемый файл является изображением?
Покинул форум
Сообщений всего: 116
Дата рег-ции: Июль 2009
Помог: 0 раз(а)
Будет ли проверка mime-типом достаточным, чтобы удостоверится, что загружаемый файл изображение или есть более надежный способ?
Мелкий
Отправлено: 21 Августа, 2017 - 11:07:05
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 617 раз(а)
Можно пнуть getimagesize, если размеры есть - значит скорей всего перед нами изображение.
----- PostgreSQL DBA
sc2r2bey
Отправлено: 21 Августа, 2017 - 12:30:57
Гость
Покинул форум
Сообщений всего: 116
Дата рег-ции: Июль 2009
Помог: 0 раз(а)
Мелкий пишет:
Можно пнуть getimagesize, если размеры есть - значит скорей всего перед нами изображение.
в самой документации написано, что не рекомендуется использовать эту функцию для таких целей )
Цитата:
Предостережение
Функция ожидает, что filename является корректным файлом изображения. Если будет передан файл не содержащий изображения, он может быть некорректно интерпретирован как изображение и функция завершится успешно, но массив при этом будет содержать бессмысленные значения.
Не используйте getimagesize() для проверки того, что файл является файлом с изображением. Для этих целей используйте расширение Fileinfo.
но и Fileinfo не дает 100% гарантию
Мелкий
Отправлено: 21 Августа, 2017 - 13:09:23
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 617 раз(а)
а, да, действительно. Склероз.
Обычно fileinfo верят, плюс веб-сервер настраивается только раздавать файлы из директорий загрузки файлов (если вообще их надо веб-сервером потом раздавать) без возможности запуска каких-то скриптов.
----- PostgreSQL DBA
OrmaJever
Отправлено: 22 Августа, 2017 - 00:12:02
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
самый надёжный способ это отключить исполнение скриптов в загружаемых директориях
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Myrzilka3000
Отправлено: 24 Октября, 2018 - 21:12:51
Новичок
Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2018 Откуда: Киев
Помог: 0 раз(а)
OrmaJever пишет:
самый надёжный способ это отключить исполнение скриптов в загружаемых директориях
Можете пожалуйста расписать поподробней, меня также интересует данный вопрос.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.