Обучение/Помощь новичкам | запрет форматов
Всем привет хацкеры!
Как запретить загрузку форматов .php
и проверь где есть .php сразу не допускать файл к загрузке?
Сама форма:
$id_file = mysql_insert_id();
// отправка файла если он прикреплен
if (isset($_FILES['file']))
{
$width = 120; // Размер скриншотов
if (!@copy($_FILES['file']['tmp_name'], H."sys/mail/files/$id_file.dat"))
{
$err = 'Ошибка при выгрузке файла';
}
if (!$err)
{
$file=esc(stripcslashes(htmlspecialchars($_FILES['file']['name'])));
$file=preg_replace('(\#|\?)', ,NULL, $file);$name=preg_replace('#\.[^\.]*$#', NULL, $file);
$ras=strtolower(preg_replace('#^.*\.#', NULL, $file));
mysql_query("UPDATE `mail` SET `file` = '$name', `ras` = '$ras' WHERE `id` = '$id_file'");
chmod(H."sys/mail/files/$id_file.dat", 0666);
if ($ras == 'gif' || $ras == 'png' || $ras == 'jpg' || $ras == 'jpeg')
{
if (isset($_FILES['file']) && $imgc=@imagecreatefromstring(file_get_contents($_FILES['file']['tmp_name'])))
{
$img_x=imagesx($imgc);
$img_y=imagesy($imgc);
if ($img_x==$img_y)
{
$dstW=$width; // ширина
$dstH=$width; // высота
}
elseif ($img_x>$img_y)
{
$prop=$img_x/$img_y;
$dstW=$width;
$dstH=ceil($dstW/$prop);
}
else
{
$prop=$img_y/$img_x;
$dstH=$width;
$dstW=ceil($dstH/$prop);
}
$screen=imagecreatetruecolor($dstW, $dstH);
imagecopyresampled($screen, $imgc, 0, 0, 0, 0, $dstW, $dstH, $img_x, $img_y);
imagedestroy($imgc);
//$screen=img_copyright($screen); // наложение копирайта
imagegif($screen,H."sys/mail/screen/$id_file.png");
imagedestroy($screen);
}
}
}
}
Как запретить загрузку форматов .php
и проверь где есть .php сразу не допускать файл к загрузке?
Сама форма:
$id_file = mysql_insert_id();
// отправка файла если он прикреплен
if (isset($_FILES['file']))
{
$width = 120; // Размер скриншотов
if (!@copy($_FILES['file']['tmp_name'], H."sys/mail/files/$id_file.dat"))
{
$err = 'Ошибка при выгрузке файла';
}
if (!$err)
{
$file=esc(stripcslashes(htmlspecialchars($_FILES['file']['name'])));
$file=preg_replace('(\#|\?)', ,NULL, $file);$name=preg_replace('#\.[^\.]*$#', NULL, $file);
$ras=strtolower(preg_replace('#^.*\.#', NULL, $file));
mysql_query("UPDATE `mail` SET `file` = '$name', `ras` = '$ras' WHERE `id` = '$id_file'");
chmod(H."sys/mail/files/$id_file.dat", 0666);
if ($ras == 'gif' || $ras == 'png' || $ras == 'jpg' || $ras == 'jpeg')
{
if (isset($_FILES['file']) && $imgc=@imagecreatefromstring(file_get_contents($_FILES['file']['tmp_name'])))
{
$img_x=imagesx($imgc);
$img_y=imagesy($imgc);
if ($img_x==$img_y)
{
$dstW=$width; // ширина
$dstH=$width; // высота
}
elseif ($img_x>$img_y)
{
$prop=$img_x/$img_y;
$dstW=$width;
$dstH=ceil($dstW/$prop);
}
else
{
$prop=$img_y/$img_x;
$dstH=$width;
$dstW=ceil($dstH/$prop);
}
$screen=imagecreatetruecolor($dstW, $dstH);
imagecopyresampled($screen, $imgc, 0, 0, 0, 0, $dstW, $dstH, $img_x, $img_y);
imagedestroy($imgc);
//$screen=img_copyright($screen); // наложение копирайта
imagegif($screen,H."sys/mail/screen/$id_file.png");
imagedestroy($screen);
}
}
}
}
Помигите вставь в код нубу
Litput , Помоги, вставь в код :(
287746312 , где вывод ошибок, туда суй
Litput , не выходит
помогите!
Если на сайте php как модуль апач то можно зделать хитрый антишелл, указанный способ в статье поста 2 поместить в отдельный файл и подключить этот файл через микроконфиг ко всем остальным
php_value auto_prepend_file "путь_к_файлу_по_ФСС"
php_value auto_prepend_file "путь_к_файлу_по_ФСС"
После этого даже имея дыру в скрипте шелл не удастся залить никаким способом
Стр.: 1, 2