[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Оцените скрипт загрузки файлов на сервак
Вежливый гость
Здравствуйте! Жду комментов...


<?php

//Файл, загружаемый через форму
$file = $_FILES["img"]["name"] ;

if (isset ($_POST['s']))
{
if (!$file)
{
echo "Вы не загрузили файл" ;
}
else
{
if (!preg_match ("/(.jpg)$/", $file))
{
echo "Неверный формат файла" ;
}
else
{
$load = move_uploaded_file ($_FILES["img"]["tmp_name"], "".$file) ;

if ($load === true)
{
echo "Файл успешно загружен" ;
}
else
{
echo "Во время загрузки файла произошло ошибка ".mysql_error() ;
}
}
}
}


?>




<form action="" method="post" enctype="multipart/form-data">

<input
type="file" name="img" /><br /><br />
<input
type="submit" name="s" value="Загрузить" />

</form>





Спустя 48 минут, 40 секунд (29.10.2010 - 13:07) ApuktaChehov написал(а):
С помощью этого скрипта злой ХаЦкер захватит управление вашим сайтом и, возможно, сервером.

Спустя 1 минута, 51 секунда (29.10.2010 - 13:09) Guest написал(а):
что там не так?

Спустя 1 минута, 18 секунд (29.10.2010 - 13:10) ApuktaChehov написал(а):
Где проверка приходящих изображений?

Спустя 46 секунд (29.10.2010 - 13:11) Guest написал(а):
разве не это?


if (!preg_match ("/(.jpg)$/", $file))
{
echo "Неверный формат файла" ;
}

Спустя 2 минуты, 42 секунды (29.10.2010 - 13:14) ApuktaChehov написал(а):
под видом файлов jpg залить можно все что угодно. А такая проверка - защита только от дурака.
К тому же не понятно, что там за
echo "Во время загрузки файла произошло ошибка ".mysql_error() ;

Где тут вообще sql?

И еще мне это непонятно:
"".$file) ;


Зачем тут кавычки?

Спустя 3 минуты, 2 секунды (29.10.2010 - 13:17) Guest написал(а):
я хотел на корень закинуть) покажи, как правильно защититься, пожалуйста

Спустя 44 секунды (29.10.2010 - 13:18) twin написал(а):

Спустя 1 минута, 16 секунд (29.10.2010 - 13:19) ApuktaChehov написал(а):
twin - опередил biggrin.gif

Спустя 7 минут, 54 секунды (29.10.2010 - 13:27) Guest написал(а):
а так?

<?php

//Файл, загружаемый через форму
$file = $_FILES["img"]["name"] ;

$path = pathinfo ($file, PATHINFO_EXTENSION) ;

$format = array ("jpg", "jpeg") ;

if (isset ($_POST['s']))
{
if (in_array ($path, $format))
{
if (move_uploaded_file ($_FILES["img"]["tmp_name"], $file))
{
echo "Файл загружен" ;
}
else
{
echo "Ошибка" ;
}
}

else
{
echo "Не тот формат" ;
}
}



?>

Спустя 1 час, 4 минуты, 43 секунды (29.10.2010 - 14:32) Basili4 написал(а):
Guest
а что мешает какой нибудь js скрипт запихать с именем *.jpg

Спустя 44 минуты, 46 секунд (29.10.2010 - 15:16) Guest написал(а):
блин, а что вы предлагаете тогда? я не пойму

Спустя 1 минута, 3 секунды (29.10.2010 - 15:17) Guest написал(а):
Basili4
Я взял этот скрипт с сайта, который мне посоветовал twin (может, это и его сайт) значит у него на сайте дырявый скрипт, судя по-твоему

Спустя 10 минут, 2 секунды (29.10.2010 - 15:27) Basili4 написал(а):
пытайся создавать изображение функцией imagecreatefromjpeg если проходит значит картинка нормальная иначе нах.

Спустя 7 минут, 43 секунды (29.10.2010 - 15:35) twin написал(а):
Basili4
Цитата
а что мешает какой нибудь js скрипт запихать с именем *.jpg

что это даст?

Спустя 3 минуты, 34 секунды (29.10.2010 - 15:39) Guest написал(а):
twin, код, который я написал чуть выше верен?

Спустя 15 секунд (29.10.2010 - 15:39) Guest написал(а):
точнее нормалный? защищенный?

Спустя 9 минут, 54 секунды (29.10.2010 - 15:49) twin написал(а):
Ну сморя от чего. От мусора - нет, а так вполне.

Спустя 59 секунд (29.10.2010 - 15:50) Guest написал(а):
какой мусор имеешь ввиду?

Спустя 11 секунд (29.10.2010 - 15:50) Guest написал(а):
от xss защищен?

Спустя 18 минут, 56 секунд (29.10.2010 - 16:09) twin написал(а):
Мусор, это то, что не может быть интерпретировано, как изображение.

Для того, чтобы узнать
Цитата
от xss защищен?

нужно сначала узнать, что такое XSS.
Вот Basili4 примерно это имел ввиду. IE исполняет js из любого файла. Но только тогда, когда файл открыт напрямую. В теге <img> ничего страшного не будет.

Ну а мусор нужно чистить. Потому что мусором может оказаться так же и реклама, порнуха, да и мало ли чего, что все таки будет интерпретировано, как картинка.

Тут только модерация.

Спустя 3 минуты, 53 секунды (29.10.2010 - 16:13) Guest написал(а):
ааа, ясно) через мой код, который я написал хакер может навредить сайту, получить доступ к чему-нить? он безопасен с точки зрения PHP? можно ли этот код использовать в серьёзных проектах? например, для заргузки юзером аватара?

Спустя 2 минуты, 43 секунды (29.10.2010 - 16:16) Basili4 написал(а):
twin
провел ряд экскрементов действительно в <img> файл js не опасен

Спустя 1 минута, 32 секунды (29.10.2010 - 16:17) Guest написал(а):
Basili4, то есть то, что ты предлагал использовать не стоит?

Спустя 39 минут, 43 секунды (29.10.2010 - 16:57) Basili4 написал(а):
можно не использовать

Спустя 5 часов, 13 минут, 28 секунд (29.10.2010 - 22:10) Ser18 написал(а):
Я так проверяю файл является ли он изображением

$imageinfo = getimagesize("Имя файла");
if($imageinfo['mime'] == 'image/gif' or $imageinfo['mime'] == 'image/jpeg'
or $imageinfo['mime'] == 'image/png' or $imageinfo['mime'] == 'image/jpg') {
....
}

Спустя 27 минут, 10 секунд (29.10.2010 - 22:37) twin написал(а):
ну и что это дает?

Спустя 15 минут, 50 секунд (29.10.2010 - 22:53) Ser18 написал(а):
Если файл является изображением то $imageinfo['mime'] возвращает image/расширение изображения. Переименованный файл не пропустит
Быстрый ответ:

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