راکت
میثم
میثم
توسط میثم مطرح شد
3 پاسخ

آپلود امن و حرفه ای تمام فرمت ها

سلام
من می خوام با php یه آپلودر درست کنم که جی کوئری هم باشه یعنی میزان فایل آپلود شده رو به درصد نشون بده.
همچنین بشه تموم فرمت ها رو با خیال راحت اپلود کرد از جمله php و net و css . js و ....
چه راهی به ذهنتون میرسه؟
آیا اسکریپت امنی داریم در این زمینه که بهم معرفی کنید؟
آیا استفاده از تیکه کد

 $imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
و 
$_FILES["file"]["type"]

برای امنیت بخشی به آپلودر کفایت میکنه؟ با این که میخوام اجازه آپلود فایل php هم بدم.
آیا توی فایل htaccess باید تغییراتی ایجاد کنم؟


ثبت پرسش جدید
بامداد
بامداد
@bamdad5 سال پیشمطرح شد
0

یه نمونه کد گذاشتم که کمک میکنه ، توش حجم فایل و پسوند ها رو به دلخواه خودت میتونی تغییر بدی
همچنین از آپلود فایل با پسوند exe و لینک بودن جلوگیری شده

کد رو میتونی به دلخواه خودت refactor کنی

<?php

$file = $_FILES;

if($file["error"] == 0) {

    $fileName = $file["name"];
    $fileType = $file["type"];
    $fileTmp = $file["tmp_name"];
    $fileError = $file["error"];
    $fileSize = $file["size"];

    $uploadOk = 1;

    $targetMain = ""; // masire delkhah 
    $newName = "picture";

    $allowedTypes = ["image/jpg", "image/jpeg", "image/png", "image/bmp"];

    // pasvand hayi ro ke mikhay upload she tayin ***
    // be onvane mesal 3ta nemoone gozashtam

if (!is_executable($fileName) AND !is_link($fileName)){

        if(!in_array($fileType, $allowedTypes)) {

            $uploadOk = 0;
        }

        if($fileSize > 5242880) { // size delkhah ro bar hasbe byte moshakhas ***

            $uploadOk = 0;
        }

        if($uploadOk == 1) {

            $ext =  pathinfo($fileName, PATHINFO_EXTENSION);
            $target = $targetMain.$newName.".".$ext;
            move_uploaded_file($fileTmp, $target);

        }

        clearstatcache(true);

        }

}

?>

میثم
میثم
تخصص :برنامه نویسی PHP خالص بدون هیچ گونه فریمورکی! با کمی چاشنی CSS و جاوا !!!
@adoniya.ir5 سال پیشمطرح شد
0

@bamdad
ممنونم.
این کد برای اجازه آپلود فایل php امن هست؟
منظورم اینه که در قسمت

$allowedTypes  

به فایل php هم اجازه اپلود بدیم.


بامداد
بامداد
@bamdad5 سال پیشمطرح شد
1

ببین تو فایل php ممکنه یکسری کد نوشته شده باشه که برنامه رو دچار مشکل کنه ، مثلا ممکنه یه اسکریپت بنویسه هزار تا کار بکنه ،
بنابراین توصیه نمیشه ، در کل هر فایلی بخای میتونی آپلود کنی در صورتی که پسوندشو اضافه کنی


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام