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 :: Как проверить, что загружаемый файл является изображением?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
sc2r2bey
Отправлено: 21 Августа, 2017 - 11:00:45
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)




Будет ли проверка mime-типом достаточным, чтобы удостоверится, что загружаемый файл изображение или есть более надежный способ?
 
 Top
Мелкий Супермодератор
Отправлено: 21 Августа, 2017 - 11:07:05
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Можно пнуть getimagesize, если размеры есть - значит скорей всего перед нами изображение.


-----
PostgreSQL DBA
 
 Top
sc2r2bey
Отправлено: 21 Августа, 2017 - 12:30:57
Post Id



Гость


Покинул форум
Сообщений всего: 116
Дата рег-ции: Июль 2009  


Помог: 0 раз(а)




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

Цитата:
Предостережение

Функция ожидает, что filename является корректным файлом изображения. Если будет передан файл не содержащий изображения, он может быть некорректно интерпретирован как изображение и функция завершится успешно, но массив при этом будет содержать бессмысленные значения.

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

но и Fileinfo не дает 100% гарантию
 
 Top
Мелкий Супермодератор
Отправлено: 21 Августа, 2017 - 13:09:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




а, да, действительно. Склероз.

Обычно fileinfo верят, плюс веб-сервер настраивается только раздавать файлы из директорий загрузки файлов (если вообще их надо веб-сервером потом раздавать) без возможности запуска каких-то скриптов.


-----
PostgreSQL DBA
 
 Top
OrmaJever Модератор
Отправлено: 22 Августа, 2017 - 00:12:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




самый надёжный способ это отключить исполнение скриптов в загружаемых директориях


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Myrzilka3000
Отправлено: 24 Октября, 2018 - 21:12:51
Post Id



Новичок


Покинул форум
Сообщений всего: 4
Дата рег-ции: Окт. 2018  
Откуда: Киев


Помог: 0 раз(а)




OrmaJever пишет:
самый надёжный способ это отключить исполнение скриптов в загружаемых директориях

Можете пожалуйста расписать поподробней, меня также интересует данный вопрос.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB