Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Безопасный апплоуд файлов на сайт (https://forum.antichat.xyz/showthread.php?t=114619)

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 код:

<?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>



Время: 09:39