<?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 залить можно все что угодно. А такая проверка - защита только от дурака.
К тому же не понятно, что там за
Где тут вообще sql?
И еще мне это непонятно:
Зачем тут кавычки?
К тому же не понятно, что там за
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 - опередил

Спустя 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
а что мешает какой нибудь js скрипт запихать с именем *.jpg
Спустя 44 минуты, 46 секунд (29.10.2010 - 15:16) Guest написал(а):
блин, а что вы предлагаете тогда? я не пойму
Спустя 1 минута, 3 секунды (29.10.2010 - 15:17) Guest написал(а):
Basili4
Я взял этот скрипт с сайта, который мне посоветовал twin (может, это и его сайт) значит у него на сайте дырявый скрипт, судя по-твоему
Я взял этот скрипт с сайта, который мне посоветовал 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 не опасен
провел ряд экскрементов действительно в <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/расширение изображения. Переименованный файл не пропустит