Автор Тема: Безопасность аплоада  (Прочитано 3870 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Nicca

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 74
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Безопасность аплоада
« : 13 Августа 2004, 18:38:12 »
Такой вопрос: можна ли обойти проверку на тип файла который ниже у меня в коде? И безопасный ли этот код(имеется в виду чтобы нельзя было загрузить юзеру другой тип файла(пхп например)

$file = $_FILES[\'img\'.$cur][\'name\'];
$type = $_FILES[\'img\'.$cur][\'type\'];
$size = $_FILES[\'img\'.$cur][\'size\'];
$temp = $_FILES[\'img\'.$cur][\'tmp_name\'];
if (($type==\'image/pjpeg\') or ($type==\'image/gif\'))
  {
    if ($size<512000)
     {
       move_uploaded_file($temp, \'../photos/news/\'.$file);
       rename(\'../photos/news/\'.$file,\'../photos/news/\'.$name);
     }
    else { echo "Слишком большой размер файла"; }      
  }
else
 {
  echo "Неправильный тип файла. Можно только gif u jpg формат";
 }

Оффлайн tserbis

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 496
  • +0/-0
  • 0
    • Просмотр профиля
Безопасность аплоада
« Ответ #1 : 13 Августа 2004, 18:41:52 »
Не уверен, что приведу лучшее вообще решение, но:
Правильно - ограничивать допустимые расширения файлов. Остальным - насильно .jpg, например. PHP-файл с расширением jpg, как правило, не страшен.

Оффлайн Croaker

  • Модератор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 927
  • +0/-0
  • 0
    • Просмотр профиля
    • http://alex-files.ru
Безопасность аплоада
« Ответ #2 : 13 Августа 2004, 19:26:37 »
Цитировать
tserbis:
PHP-файл с расширением jpg, как правило, не страшен


в ОС Unix расширение большой роли не играет. Вы можете написать скрипт на перле, сохранить его как image.jpg, запустить, например

perl image.jpg

и он у вас успешно отработает.
Не все коту матрица.

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
Безопасность аплоада
« Ответ #3 : 13 Августа 2004, 19:39:47 »
Цитировать
tserbis:
PHP-файл с расширением jpg, как правило, не страшен.

не факт, мсье Дюк.
Croaker прав...
с РНР тоже самое отработает...
другое дело его еще надо вызвать таким образом :)
AS IS...

Оффлайн tserbis

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 496
  • +0/-0
  • 0
    • Просмотр профиля
Безопасность аплоада
« Ответ #4 : 14 Августа 2004, 13:48:14 »
Итого, я не понял, где я не прав...
>> PHP-файл с расширением jpg, как правило, не страшен.

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Безопасность аплоада
« Ответ #5 : 14 Августа 2004, 16:41:36 »
Nicca
ИМХО - проверяй и то (image/pjpeg), и другое (.jpg)...
LJ: Backslashed life (rss)

Оффлайн Syrinx

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Безопасность аплоада
« Ответ #6 : 14 Августа 2004, 22:34:03 »
По-моему, проще просто проверить загруженный файл на тип изображения.

int exif_imagetype ( string filename)

если возвращает, скажем, IMAGETYPE_GIF или IMAGETYPE_JPEG, то это, скорее всего - не php.

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
Безопасность аплоада
« Ответ #7 : 14 Августа 2004, 22:54:36 »
Четко знать, что можно загружать, и какие особенности загружаемых файлов, по которым можно однозначно определить тип файла.
Явно запретить все, что не подходит под описание файла. Явно разрешить все, что подходит.

Цитировать
Syrinx:
exif_imagetype

а чего собственно при обсуждении аплоада упираться в то, что будет аплодиться именно картинка? А текстовый файл мне уже зааплодить нельзя? Архив? Вордовый документ?
работа в Украине

Оффлайн Syrinx

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 21
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Безопасность аплоада
« Ответ #8 : 15 Августа 2004, 10:50:10 »
Цитировать
Yukko:
а чего собственно при обсуждении аплоада упираться в то, что будет аплодиться именно картинка? А текстовый файл мне уже зааплодить нельзя? Архив? Вордовый документ?


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

Оффлайн sublimity

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 121
  • +0/-0
  • 0
    • Просмотр профиля
Безопасность аплоада
« Ответ #9 : 15 Августа 2004, 12:34:48 »
А попробуй проверять размеры изображения через ф-ции GD

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28