# زبان های اسکریپتی > PHP > امنیت در PHP >  امنیت در آپلود فایل زیپ

## ravand

سلام
برای امنیت فایل زیپ چی پیشنهاد میدید؟
من از این روش استفاده کردم. 

<?php
$zip = zip_open("test.zip");
if(zip_read($zip)){
                echo "هست";
}else{
                echo "نیست";
}
zip_close($zip);
?>

امدم یک فایل notepad باز کردم متنی داخلش نوشتم و با نام test.zip ذخیره کردم. بهم اخطار داد.
شما چه راهی رو پیشنهاد میدید؟ این راه راه خوبیه یا راه امنی نیست؟
متشکرم.

----------


## SZsXsZS

خب تو اصلا چکار داری به محتوای فایل؟
توی فایل هرچی میخواد باشه، همینطوریش خطری نداره واسه سایت شما.
البته در نسخه های قدیمی IE (عمدتا نسخهء 6 و 7) خطرهایی برای کاربران سایت میتونه باشه که بستگی به جزییات و کانفیگ هایی در سایت شما داره.

----------


## ravand

> خب تو اصلا چکار داری به محتوای فایل؟
> توی فایل هرچی میخواد باشه، همینطوریش خطری نداره واسه سایت شما.
> البته در نسخه های قدیمی IE (عمدتا نسخهء 6 و 7) خطرهایی برای کاربران سایت میتونه باشه که بستگی به جزییات و کانفیگ هایی در سایت شما داره.


من چیز زیادی در مورد هک نمیدونم. برای همین پرسیدم.
گفتم شاید مثل هک از طریق عکس باشه که طرف میاد یه notepad باز میکنه کدهاش رو داخلش میذاره و با نام مثلا test.exe.png ذخیره میکنه و ....
الان اگه شما فولدری رو به زیپ تبدیل کنی و بعد بخوای از حالت فشرده خارجش کنی. برای اینکه ویروسی نشی میای و روی فایل زیپ دابل کلیک میکنی و اون فایل مورد نظر را انتخاب میکنی و روش راست کلیک میکنی و گزینه ی Extract without confirmation را میزنی. ولی وقتی همه ی فولدر رو یه جا از حالت فشرده خارج کنی امکانش هست ویروس داخلش باشه که مخفی باشه. اینطوری که گفتم یکی یکی اون فایل هایی که میشناسی خارج میکنی.

----------


## kb0y667

خود فایل رو zip رو ضرورتی نداره بررسی کنید

ولی همینکه مطمئن باشید پسوند فایل zip. هست
همینکه مطمئن باشید پسوند خطرناک دیگه ای نباشه
کفایت میکنه

موفق باشید

----------


## hyperboy

آپلود فایل زیپ مشکلی برای سایت شما نداره حتی اگه فایل های خطرناکی توی فایل زیپ باشه.چون فایل  برای کاربر دانلود میشه و روی سایت اجرا نمیشه .باید از آپلود فایل های که قابلیت اجرا در سرور را دارند جلوگیری کنید مثل .php , .aspx ,....

----------


## darkface

نمیدونم چرا نصف برنامه نویسای ما ایرانیا اصلا به امنیت اهمیتی نمیدن!!!
یه دوست عزیزی اومده گفته شما محتواشو چیکار داری  :متعجب: 
خب برادر من وقتی طرف میاد فایل اپلود میکنه که زیپ نیست ما میاییم یه سری فیلتر براش میزاریم که اقا فلان نباشه بیسار نباشه دو پسونده نباشه وقتی طرف میبینه این سری فیلترها وجود داره میاد فایل زیپ رو اپلود میکنه از این فیلترها میگذره بعد فایل های توش و محتوی توش همش دارای مشکل هستند و با یه اکسترکت ساده سایت طرف به فنا میره.
اگر مشکل استارتر محترم حل نشده یه فانکشنی نوشتم واقعا واسش زحمت کشیدم که تمامی موارد رو هم بررسی میکنه داخل فایل زیپ براشون بزارم

----------


## ravand

> نمیدونم چرا نصف برنامه نویسای ما ایرانیا اصلا به امنیت اهمیتی نمیدن!!!
> یه دوست عزیزی اومده گفته شما محتواشو چیکار داری 
> خب برادر من وقتی طرف میاد فایل اپلود میکنه که زیپ نیست ما میاییم یه سری فیلتر براش میزاریم که اقا فلان نباشه بیسار نباشه دو پسونده نباشه وقتی طرف میبینه این سری فیلترها وجود داره میاد فایل زیپ رو اپلود میکنه از این فیلترها میگذره بعد فایل های توش و محتوی توش همش دارای مشکل هستند و با یه اکسترکت ساده سایت طرف به فنا میره.
> اگر مشکل استارتر محترم حل نشده یه فانکشنی نوشتم واقعا واسش زحمت کشیدم که تمامی موارد رو هم بررسی میکنه داخل فایل زیپ براشون بزارم


مشکل من خیلی وقته حل شده این آقای hyperboy که پست داد میخواست سایت آپلودش رو تبلیغ کنه شما زیاد خودتون رو ناراحت نکنید.  :لبخند گشاده!:

----------


## darkface

> مشکل من خیلی وقته حل شده این آقای hyperboy که پست داد میخواست سایت آپلودش رو تبلیغ کنه شما زیاد خودتون رو ناراحت نکنید.


والا بوخودا اعصاب نمیزارن واسه ادم...  :لبخند گشاده!:

----------


## mafila

سلام
میشه این فانکشن خودتون را بگذارید تا ما هم استفاده کتیم. در زمینه پی دی اف و عکس اگر فانکشنی دارید ممنون میشم بگذارید.

----------


## mafila

> نمیدونم چرا نصف برنامه نویسای ما ایرانیا اصلا به امنیت اهمیتی نمیدن!!!
> یه دوست عزیزی اومده گفته شما محتواشو چیکار داری 
> خب برادر من وقتی طرف میاد فایل اپلود میکنه که زیپ نیست ما میاییم یه سری فیلتر براش میزاریم که اقا فلان نباشه بیسار نباشه دو پسونده نباشه وقتی طرف میبینه این سری فیلترها وجود داره میاد فایل زیپ رو اپلود میکنه از این فیلترها میگذره بعد فایل های توش و محتوی توش همش دارای مشکل هستند و با یه اکسترکت ساده سایت طرف به فنا میره.
> اگر مشکل استارتر محترم حل نشده یه فانکشنی نوشتم واقعا واسش زحمت کشیدم که تمامی موارد رو هم بررسی میکنه داخل فایل زیپ براشون بزارم



سلام
میشه این فانکشن خودتون را بگذارید تا ما هم استفاده کتیم. در زمینه پی دی اف و عکس اگر فانکشنی دارید ممنون میشم بگذارید.

----------


## mafila

سلام
لطف میکنید این فانکشن که نوشتید بگذارید. 
در ضمن من هم یکسری فانکشن ها نوشتم اگر بررسی کنید خوشحال میشم.
مثلا برای آپلود عکس:
function test_input($data) 
		{
			  $data = trim($data);
			  $data = stripslashes($data);
			  $data = htmlspecialchars($data);
			  $data=mysql_real_escape_string($data);
			  return $data;
		}
	$files=array('config.php');
	$strpos=strpos('config.php','http://');
	if(in_array('config.php',$files) && !$strpos)
		include_once('config.php');
		$con=mysql_connect($server,$db_un,$db_pw);
		mysql_select_db($db_name, $con);
		mysql_query('SET NAMES \'utf8\'');

		$s_s1=test_input($_POST["s1"]);


		$allowedExts = array("gif", "jpeg", "jpg", "png");
		$temp = explode(".", $_FILES["fn"]["name"]);
		$extension = end($temp);
		if ((($_FILES["fn"]["type"] == "image/gif")
		|| ($_FILES["fn"]["type"] == "image/jpeg")
		|| ($_FILES["fn"]["type"] == "image/jpg")
		|| ($_FILES["fn"]["type"] == "image/pjpeg")
		|| ($_FILES["fn"]["type"] == "image/x-png")
		|| ($_FILES["fn"]["type"] == "image/png"))
		&& ($_FILES["fn"]["size"] <= 350000)
		&& in_array($extension, $allowedExts))
		{
			$filename = basename($_FILES['fn']['name']);
			$ext = substr($filename, strrpos($filename, '.') + 1);
			$photo = &$_FILES['fn'];
			$flag=0;
			if($photo["type"]=="image/jpg" || $photo["type"]=="image/jpeg"  || $photo["type"]=="image/pjpeg")
			{
				$src = imagecreatefromjpeg($photo['tmp_name']);
				$w = ImageSX($src);
				$h = ImageSY($src);
				$dst = imagecreatetruecolor($w, $h);
				ImageCopy($dst, $src, 0, 0, 0, 0, $w, $h);
				$flag=imagejpeg($dst,"mypic/".$photo['name']);
			}
			ImageDestroy($dst);
			ImageDestroy($src);
			if($flag==1)
			{
				$destination="mypic/";
				$destination.=$photo['name'];
				$query = "INSERT INTO tbl VALUES('$s_s1', '$destination' )";
				mysql_query($query);
			}
		}
ممنون

----------


## asemaneiran

سلام
من یک سایت asp اپلود کردم
میخواستم بدونم برای اینکه کدهام به سرقت نره و یا سایتم هک نشه یا بانک اطلاعاتی ام دستکاری نشه باید چکار کنم
خواهش می کنم کمکم کنید

----------

