[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Загрузка файлов
Миша
В блоге IRBIS-team такое решение:
             $file_ext = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);

if(in_array($file_ext, $valid_ext))


В сети предлагается другое:
if($_FILES['file']['type']!="image/jpeg")

и
$imageinfo=getimagesize($_FILES['file']['tmp_name']);
if($imageinfo['mime']!="image/jpeg"


Что выбрать, что-бы нельзя было подделать.

_____________
Принимаю заказы, писать в ЛС
twin
Подделать что? mime в заголовках? Очень легко подделать. Содержимое файла с любым расширением тоже. Какая цель преследуется?

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Миша
Загрузка фотогравии пользователями.

_____________
Принимаю заказы, писать в ЛС
twin
Ну mime проверять не вариант. Так что расширение, как у нас в блоге. Если есть опасность, что кто-то будет хулиганить и закидывать сервер мусором вместо фоток... Тогда есть способ перемещать их с помощью графических библиотек. Они то уж точно только с картинками работают.

Хотя пустое это все и необоснованно параноидальное. Ну не такого мусора накидают, так голых жоп. Все равно без модерации чистоты рядов не добиться. smile.gif

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

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Миша
Например заходим в блокнот пишем чего и сохраняем "test.jpg"
Теперь легко можно загрузить и скрипт его проглотит. Вот.

twin:
Подделать можно, да.  Если подделывать расширение, то в чем смысл... Ведь запустить исполняемы код с расширением .jpeg невозможно.


Понятно.

_____________
Принимаю заказы, писать в ЛС
sergeiss
Цитата (Медведь @ 30.05.2014 - 17:14)
Ведь запустить исполняемы код с расширением .jpeg невозможно.

При определенных условиях возможно. Недавно ж обсуждали: http://phpforum.su/index.php?showtopic=81624&hl=

Естественно, этот вариант возможен при "непряморукости" программиста smile.gif Но учитывая то, что "некоторые" даже названия таблиц хотят передавать через адресную строку, то кто-то может и картинку заинклудить.

Так что процитированное утверждение верно только с оговорками, а не абсолютно.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
bestxp
а если nginx то там и инклудить не нужно достаточно

http://some.ru/path/to/image.jpg&00.php ( баг nginx ) вообще смотрите habr недавна была статья
Миша
Цитата (sergeiss @ 30.05.2014 - 17:37)
Естественно, этот вариант возможен при "непряморукости" программиста smile.gif Но учитывая то, что "некоторые" даже названия таблиц хотят передавать через адресную строку, то кто-то может и картинку заинклудить.

и картинку заинклудить - уже точно нет))

при "непряморукости" программиста - намёк понял) значит нужно учить, для пряморукости biggrin.gif

_____________
Принимаю заказы, писать в ЛС
vital
Достаточно запретить выполнять скрипты из папки куда грузят фотки и не выносить мозг ни себе ни людям ни серверу.

_____________
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."

Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar
sergeiss
vital, ты прав насчет запретить выполнение из той папки. Но, как я уже говорил в этой теме, при кривизне рук программера, в определенных ситуациях, можно подинклудить картинку с содержащимся в ней скриптом. Смотри тему, совсем недавняя, там есть примеры таких картинок: http://phpforum.su/index.php?showtopic=81624

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
vital
Если некто инклудит загруженные пользователем файлы то картинки с пхп - не понадобятся. Там хватит и обычных иньекций с прочей лабудой.

А тема с картинками древняя как какашка мамонта.

_____________
"Нужно быть готовым прислушиваться к тем, кто может тебя чему-нибудь научить. Иначе ты никогда не вырастешь."

Откровенно я никому ниразу не нагрубил. А дать подзатыльник зарвавшемуся юнцу, так это и ему на пользу, и мне в удовольствие. © AllesKlar
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.