مشكل امنيتي فايل بارگذاري شده

mohsen162

Member
با سلام خدمت دوستان
من تازه كارم يك اسكريپ براي بارگذاري وفايلها csv نوشتم درواقعه فايل csv رو ميخونه بعد داده هاي اونو وارد ديتابيس ميكنه
اسكريپم تكميله اما مي خوام تا مي تونم مشكلات امنيتيشو حل كنم
براي لوگين شدن علاوه بر md5 و هش كردن از salt هم استفاده كردم اما مشكلم با فايل csv است من اين كدهارو نوشتم
PHP:
$uploaddir='save/';
$uploadfile=$uploaddir . basename($_FILES['attachment']['name']); 
 
if ($_FILES["attachment"]["size"]<1000000) { 

if (substr(basename($_FILES['attachment']['name']), -4) != ".csv")
 { 
echo'<br><br><center><b>فايل انتخابي شما مجاز نيست</b></center><br><br>'; 
 } else{
 
if (move_uploaded_file($_FILES['attachment']['tmp_name'], $uploadfile)) { 

 echo '<br><br><center><b>فايل با موفقيت آپلود شد</b></center><br><br>'; 
 
 $filename='save/' . basename($_FILES['attachment']['name']);

$handle = fopen("$filename","r");
while (($data = fgetcsv($handle, 3000, ";")) !== FALSE)
{
$month=trim($_POST['month']);
$Message=trim($_POST['Message']);
$time=time();

$query = " INSERT INTO `Law_Fish` VALUES('', '$data[0]', '$data[1]', '$data[2]', '$data[3]', '$data[4]','$data[5]', '$data[6]', '$data[7]', '$data[8]', '$data[9]', '$data[10]', '$data[11]', '$data[12]', '$data[13]', '$data[14]', '$data[15]', '$data[16]', '$data[17]', '$data[18]', '$data[19]', '$data[20]', '$data[21]', '$data[22]', '$data[23]', '$data[24]', '$data[25]', '$data[26]', '$data[27]', '$data[28]', '$data[29]', '$data[30]', '$Message', '$month', '$time'); ";
 mysql_query($query) or die("Query failed with error: ".mysql_error());            
}
fclose($handle);

 }
UNLINK($uploadfile);

}
}
else{

 echo '<br><br><center><b>فايل انتخابي شما از حد مجاز بيشتر است</b></center><br><br>'; 

}

}
همينجور كه ميبينيد حجم فايل(علاوه بر اينكه در كد html چك ميشه) و پسوند فايلو هم چك ميكنم
سوالم اينه كه چطور مطمئن بشم كه اين فايل ماهيتن csv است(يعني در اصلا csv بوده نه پسوند فايلو تغيير دادن اصلا ميشه اين چنين كاري كرد:-?)
دوم چطوري بفهمم كه اين فايل حتما عدد داخلشه نه حرف يا بر عكس چك كنم
لطفا راهنمايي كنيد ممنون:)
 

جدیدترین ارسال ها

بالا