سـلام ، من خیلی جاها این مطلب رو خوندم و شنیدم امکان آپلود فایل در سایت یک روزنه امنیتی است و هکر می تونه برخی کدهای مخرب رو به سایت ترزیق کنه ، یکی از مواردی هم که زیاد بهش اشاره شده اینکه تنها به بررسی پسوند اکتفا نکنیم چون این امکان وجود داره که مثلا هکر فایلی با نام a.php.jpg رو اپلود کنه که در اصل این یه فایل php هست که بهش jpg اضافه شده
**
من همچین فرمی درست کردم که فایل رو دریافت می کنه
<html>
<body>
<form action="upload_file.php" method="post" enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file"><br>
<input type="submit" name="submit" value="Submit">
</form>
</body>
</html>
یه پوشه ای هم بنام اپلود ساختم و در در فایل upload_file.php این کدها رو نوشتم
if ($_FILES["file"]["error"] > 0){
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}else{
echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Stored in: " . $_FILES["file"]["tmp_name"];
if (file_exists("upload/" . $_FILES["file"]["name"])){
echo $_FILES["file"]["name"] . " already exists. ";
}else{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
}
می بنید که به هیچ وجه پسوندها رو بررسی نکردم ، ساختار فایل هم بررسی نکردم ، اما وقتی فایل a.php رو که حاوی چند دستور php هست ، اپلود می کنم و بعدش میخوام اجرا کنم مرورگر این خطا رو نشون می ده
چرا با وجودی اینکه من هیچ فیلتری انجام ندادم بازم این فایل اجرا نشد ؟!
در اصل من همه اینا رو پرسیدم چون یه جایی شنیده بودم که PHP رو میشه به صورت های مختلف نصب کرد ؟ مثلا چون الان php من به صورت ماژولار نصب شده اجرا نشده ولی اگه php به صورت .... نصب می شد اجرا می شد . ((اون .... چیزی که یادم رفته ) ، php رو به چند حالت میشه نصب کرد ؟