PDA

Просмотр полной версии : Безопасный апплоуд файлов на сайт


svalka
05.04.2009, 19:36
Имеем:
1.Форма для загрузки картинки на сайт.
2.Ограничение по весу... (ну допустим 3 МБ).
3.Место под сайт 1Гиг.
4.Приходит баклан и апплоудит изошку на 8Гиг.

Что происходит?
Считывание веса файла - отдается апачем, после загрузки. Значит в момент загрузки апач кладет куда то темпак / темпаки и грузит оперативку ...

Что бы такое предпринять, находясь у хостера, что бы не допустить этой байды? Если отвечаете то просьба без флуда..только по делу!

АСЯ 195377

mr.The
05.04.2009, 20:39
ограничить макс размер аплоада в php.ini? вряд-ли хостер даст тебе заливать пару гиг за раз.

Pashkela
05.04.2009, 22:21
https://forum.antichat.ru/showpost.php?p=837324&postcount=431

ЕНОТ

<?php
/*
Пример загрузки файлов на сервер
*/
#Дира для загруженных файлов
$uploaddir = '';
#Разрешённые типы файлов (через запятую)
$types = 'jpeg,gif,png,rar,zip';
#Максимальный размер файла (в килобайтах)
$maxsize = 100;

if(!empty($_FILES)){
$maytypes = explode(',', str_replace(' ', '', $types));
foreach($maytypes as $maytype){
if(stristr($_FILES['filename']['type'], $maytype)){
$may = 1;
break;
}else{
$may = 0;
}
}
if($may){
if($_FILES['filename']['size'] <= $maxsize*1024){
$dir = './'.$uploaddir.'/'.basename($_FILES['filename']['name']);
if(copy($_FILES['filename']['tmp_name'], $dir)){
echo 'Файл успешно загружен.<br/>
Ссылка на файл: <a href="'.$uploaddir.'/'.$_FILES['filename']['name'].'">'.$_FILES['filename']['name'].'</a>';
}else{
echo 'Возникли ошибки при загрузке файла';
}
}else{
echo 'Размер файла превышает '.$maxsize.' килобайт';
}
}else{
echo 'Тип файла не входит в состав разрешённых<br/>Разрешённые типы файлов: '.$types;
}
}
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
<input name="filename" type="file" /><br />
<input type="submit" value="Загрузить" />
</form>