Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: загрузка картинки на сервер с определенным типом
 
 автор: inner   (22.05.2009 в 12:19)   письмо автору
 
 

Привет) как проверить тип картинки при загрузки на определенный тип?
например, я хочу, что бы у меня загружались только jpeg файлы
делаю проверку:
$_FILES['q']['file'] == "image/jpeg"

Но как сделать, что бы это был именно jpeg? я ж могу загрузить с расширением jpg все, что угодно...

  Ответить  
 
 автор: sim5   (22.05.2009 в 12:33)   письмо автору
 
   для: inner   (22.05.2009 в 12:19)
 

http://www.php.net/manual/ru/features.file-upload.php
http://www.php.net/manual/ru/features.file-upload.post-method.php

  Ответить  
 
 автор: inner   (22.05.2009 в 15:43)   письмо автору
 
   для: sim5   (22.05.2009 в 12:33)
 

чот не нашел там ответа на свой вопрос...
вопрос в том, как защитить, а не как сделать...

  Ответить  
 
 автор: Den*s   (22.05.2009 в 16:03)   письмо автору
 
   для: inner   (22.05.2009 в 15:43)
 

http://www.softtime.ru/scripts/upload.php
можно сделать через определение типа файла, то есть если php файл переименовать в jpg, его ти всё равно останется пхп-шный

  Ответить  
 
 автор: sim5   (22.05.2009 в 17:31)   письмо автору
 
   для: inner   (22.05.2009 в 15:43)
 

Нужно не искать, а читать:

$_FILES['userfile']['type']
Mime-тип файла, в случае, если браузер предоставил такую информацию. Пример: "image/gif".

  Ответить  
 
 автор: serjinio   (22.05.2009 в 21:51)   письмо автору
 
   для: sim5   (22.05.2009 в 17:31)
 

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

  Ответить  
 
 автор: AcidTrash   (22.05.2009 в 22:00)   письмо автору
 
   для: serjinio   (22.05.2009 в 21:51)
 

надо делать ресайз картинки допустим с коэффициентом 1..если вылизет ошибка ..значить файл не изображение
Интересная проверка... :)

  Ответить  
 
 автор: psychomc   (23.05.2009 в 00:06)   письмо автору
 
   для: serjinio   (22.05.2009 в 21:51)
 

поподробнее пожалуйста на счет подделки

  Ответить  
 
 автор: serjinio   (23.05.2009 в 08:47)   письмо автору
 
   для: psychomc   (23.05.2009 в 00:06)
 

http://habrahabr.ru/blogs/php/44610/ Безопасная загрузка изображений на сервер. Часть первая.

  Ответить  
 
 автор: sim5   (23.05.2009 в 03:00)   письмо автору
 
   для: serjinio   (22.05.2009 в 21:51)
 

Данные ссылки даны автору исключительно для того, чтобы он $_FILES['q']['file'] == "image/jpeg" не впяливал более. А что касается картинок, то getimagesize.

  Ответить  
 
 автор: serjinio   (23.05.2009 в 08:54)   письмо автору
 
   для: sim5   (23.05.2009 в 03:00)
 

К сожалению через getimagesize проскочат картинки в которых внутри встроен PHP или яваскрипт..а при ресайзе зта картинка отфилитруется...

  Ответить  
 
 автор: sim5   (23.05.2009 в 09:38)   письмо автору
 
   для: serjinio   (23.05.2009 в 08:54)
 

Проскочит, собственно для этого и не обязательно картинку, и что дальше?

  Ответить  
 
 автор: Брыль   (23.05.2009 в 10:25)   письмо автору
 
   для: sim5   (23.05.2009 в 09:38)
 

Допустим meta информация в jpeg графике. И работа с библиотекой exif. Если не пропускать данные через htmlspecialchars, то xss налицо.

  Ответить  
 
 автор: sim5   (23.05.2009 в 10:58)   письмо автору
 
   для: Брыль   (23.05.2009 в 10:25)
 

Запустите, поделитесь...

  Ответить  
 
 автор: yuk   (22.05.2009 в 23:18)   письмо автору
 
   для: inner   (22.05.2009 в 15:43)
 

Если речь идет только о рисунках - то легко и удобно проверять тип с помощью getimagesize()

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования