Как запретить загрузки шелл?

Печать RSS
544


Дух
0
25, Я вообще считаю что 100% защиты от дыр и всей хни добиться практически не реально... Хакеры не дремлют...

Ктулху
0
30, а зачем расширение? Я храню просто time() в названии файла. реальное название хранится в базе, размер и mime type определяется перед выдачей файла.
31, главное закрывать актуальные уязвимости, уже на 90% меньше вероятности что взломают.
Изменил: ктулху (17.12.2009 / 10:45)

ВЕЛИКИЙ и УЖАСНЫЙ!
0
Короче
$file_size = ''.$_FILES['ufile']['size'].'';
if($file_size!=0)
{
$file_hash = md5_file($_FILES['ufile']['tmp_name']);
copy($_FILES['ufile']['tmp_name'], "attach/$file_hash");
$tm=time();
$filename= ''.$_FILES["ufile"]["name"].'';
mysql_query("INSERT INTO ".$prefix."attach(hash,name,date,size) VALUES('$file_hash','$filename','$tm','$file_size')") or die(mysql_error()); 
}
Типа вот так файлы загружай

ВЕЛИКИЙ и УЖАСНЫЙ!
0
И типа вот так выдавай (тока ты тупо код не копируй, переменные пофильтровать надо ещё)
$attach=(int)$_GET['attach'];
$file=mysql_fetch_assoc(mysql_query("SELECT * FROM ".$prefix."attach WHERE id='$attach'"));
@mysql_query("UPDATE ".$prefix."attach SET count=count+1 WHERE id=$attach");
    $local_file='attach/'.$file[hash].'';
	header('Cache-control: private'); 
    header('Content-Type: application/octetstream'); 
    header('Content-Length: '.filesize($local_file)); 
    header('Content-Disposition: attachment; filename='.$file[name]); 
    flush(); 
	$files = fopen($local_file, "r"); 
    while (!feof($files)) 
    { 
        print fread($files, round(9999 * 1024)); 
        flush(); 
        sleep(1); 
    } 
    fclose($files); 

Ктулху
0
34, можно ещё сделать докачку и ограничение скорости) видел на php.su

Транклюкаторщик
0
34, мда... серваки вам не жалко...

Ктулху
0
36, проверь, быдлокодом можно куда больше нагрузить сервер. тут поидее нагрузки то нет, оператива только, если большой файл.
М

Малиновые штаны
0
В php для отдачи файла есть вроде отдельная функция.

Ктулху
0
38, помню когда только придумал отдавать файл скриптом, много гуглил на эту тему.. везде предлогалось лишь отослать заголовки и файл (Короче как выше SNELS описал), ни о каких функциях ничего не писали (

ВЕЛИКИЙ и УЖАСНЫЙ!
0
39 аналогично =)))
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск