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

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

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

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

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


ثبت پرسش جدید
بامداد
@bamdad 4 سال پیش آپدیت شد
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 خالص بدون هیچ...
@adoniya.ir 4 سال پیش آپدیت شد
0

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

$allowedTypes  

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


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

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


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

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