PDA

View Full Version : سوال: امنیت در کد آپلود



soroush.r70
شنبه 17 اسفند 1392, 09:57 صبح
در کد زیر چه کاری انجام بدم تا حداکثر امنیت برقرار شه و به چه صورت محدودیت فایل بذارم که فقط jpg - png - gif - zip -rar ارسال بشه کرد و یه سری کارهای دیگه که امنیت ارسال بالا باشه ممنون

نکته : کد ارتباط pdo است


<?phpif(isset($_FILES['files']))
{
$errors= array();
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name )
{
$file_name = $key.$_FILES['files']['name'][$key];
$file_size =$_FILES['files']['size'][$key];
$file_tmp =$_FILES['files']['tmp_name'][$key];
$file_type=$_FILES['files']['type'][$key];
$username=$_SESSION['username'];
$fullname=$_SESSION['fullname'];
if($file_size > 3145728)
{
$errors[]='حجم فایل ها نباید بیشتر از 3 MB باشد';
}
$class=new content;
$ip=$class->getip();
$pdate = get_jalali2();
$class->query("INSERT into `tbl_uploadpic` (`id`,`filename`,`filesize`,`filetype`,`username`, `fullname`,`ip`,`pdate`) VALUES (NULL,?,?,?,?,?,?,?); ");
$class->bind(1,!is_null($file_name) ? $file_name :'');
$class->bind(2,!is_null($file_size) ? $file_size :'');
$class->bind(3,!is_null($file_type) ? $file_type :'');
$class->bind(4,!is_null($username) ? $username :'');
$class->bind(5,!is_null($fullname) ? $fullname :'');
$class->bind(6,!is_null($ip) ? $ip :'');
$class->bind(7,!is_null($pdate) ? $pdate :'');
$class->execute();
$desired_dir="userdata";
if(empty($errors)==true)
{
if(is_dir($desired_dir)==false)
{
mkdir("$desired_dir", 0700); // Create directory if it does not exist
}
if(is_dir("$desired_dir/".$file_name)==false)
{
move_uploaded_file($file_tmp,"$desired_dir/".$file_name);
}
else
{ // rename the file if another one exist
$new_dir="$desired_dir/".$file_name.time();
rename($file_tmp,$new_dir) ;
}
}
else
{
print_r($errors);
}
}
if(empty($error))
{
echo '<div class="mesn">فایل ها با موفقیت ارسال شد</div>';
}
}
?>


<form action="" method="POST" enctype="multipart/form-data">
<div class="uploader red">
<input type="text" class="filename" readonly/>
<input type="button" name="file" class="button" value="انتخاب فایل"/>
<input type="file" name="files[]" multiple size="60"/>
</div>
<input type="submit" class="btnsuu" value="ارسال" id="sunup"/>
</form>