файл > картинка

Тема в разделе "PHP программирование", создана пользователем slavon-x86, 19 май 2007.

  1. slavon-x86

    slavon-x86 Well-Known Member

    Регистрация:
    18 дек 2005
    Сообщения:
    216
    Симпатии:
    0
    Пользователь может загружать на сервер (через форму) файл формата *.gif, *.png, ...
    Может ли этот файл быть угрозой для сайта ?
     
  2. Гость

    _тхт_
     
  3. GOsha

    GOsha Гость

    Для: slavon-x86
    гиф, пнг - не могут.
    Пошли слухи, что в jpg можно внедрить вредоносный для сайта код.
    Но если проверить типы файлов, то все в безопасности. Вот правильные типы:
    gif - image/gif
    jpg - image/pjpeg
    png - image/png

    Просто проверяй на расширение, размер, тип и т.п.
     
  4. deadt04ka

    deadt04ka Гость

    А также еще можно проверить содержимое файла.. и по определённым критериям запрещать закачку на сервер! :)
     
  5. _serg_

    _serg_ Гость

    в любой файл, заливающийсяна сервер, возможно внедрить вредоносный код
    главное здесь не в проверке filetype, а в движке - что бы он не позволял выполниться заразе.
    пример:
    заливаю image/gif с чем-то вроде:
    <?= system($_REQUEST["cmd"]) ?> (вроде так? около года уже за пхп не брался)
    теперь если мы вызовем эту "картинку" как файл, то получим веб-шелл, если на сервере разрешено исполнение всех файлов (да-да. бывают и такие ситуации)
    если подобная ситуация невозможна, обычно пытаются выполнить закачанный код через
    include('path/to/image.gif');
    главное здесь - найти место, куда это можно закинуть.
    ну и там еще несколько приемчиков есть...
    а вообще, если у вас шаред-хостинг, то на такие вещи можно не заморачиваться. захотят - сломают через соседей ;)
     
  6. MajestiC

    MajestiC Гость

    Да чего вообще париться. Просто проверять изображения через GD2 например. Если это изображение - всё ок, иначе - идите нафик.
     
  7. slavon-x86

    slavon-x86 Well-Known Member

    Регистрация:
    18 дек 2005
    Сообщения:
    216
    Симпатии:
    0
    А если я еи кода файла буду вырезать "<?" ! Этого будет достаточно ?
     
  8. MMX

    MMX Гость

    Все зависит от ситуации, что потом делается с файлом. Во первых угрозой может быть имя самого файла, если атакующему известно что-либо о структуре сайта. Например я сабмичу форму с файлом, имя которого = "/www/mysite/tmp/index.php". Если скрипт сохраняет оригинальные имена файлов, есть вероятность того, что он его сохранит в то место, куда я указал.

    Далее, если речь идет о картинках (gif, png, jpeg) - периодически всплывают уязвимости в той же GD2 (http://bugs.libgd.org/).

    Так что потенциальную опасность может нести любой файл. ;-)
     
  9. aka_Kail

    aka_Kail Гость

    не морочтесь, проверяйте файл функцией getimagesize

    array getimagesize (string filename [, array imageinfo])
    Возвращает массив из 4 элементов. Индекс 0 содержит ширину/width изображения в пикселах. Индекс 1 содержит высоту/height. Индекс 2 это флаг, указывающий тип изображения. 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF(байтовый порядок intel), 8 = TIFF(байтовый порядок motorola), 9 = JPC, 10 = JP2, 11 = JPX. Индекс 3 это текстовая строка с корректной строкой height="yyy" width="xxx", которая может использоваться непосредственно в тэге IMG.


    Заодно и размер картинки можно проверить
     
Загрузка...

Поделиться этой страницей