လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> File Upload တွင် File Upload အတွက်လုံခြုံရေးထိန်းချုပ်မှုအတွက်အသုံးပြုသူထည့်သွင်းမှုနှင့် output function များကိုမည်သို့အသုံးပြုရမည်နည်း။

File Upload တွင် File Upload အတွက်လုံခြုံရေးထိန်းချုပ်မှုအတွက်အသုံးပြုသူထည့်သွင်းမှုနှင့် output function များကိုမည်သို့အသုံးပြုရမည်နည်း။

M66 2025-06-06

Safe File Upload ကိုအကောင်အထည်ဖော်ပါ။ PHP တွင်ဒေါင်းလုပ်လုပ်ပါ။ အသုံးပြုသူ input နှင့် output function များကိုမှန်ကန်စွာအသုံးပြုခြင်း

Web Development တွင်ဖိုင်တင်ခြင်းနှင့်ဒေါင်းလုပ်လုပ်ခြင်းနှင့်ဒေါင်းလုပ်များသည်ပုံမှန်လည်ပတ်မှုဆိုင်ရာ module များဖြစ်သည်။ သို့သော်အသုံးပြုသူ input နှင့် output ကိုတင်းကြပ်စွာထိန်းချုပ်ထားခြင်းမရှိပါကတိုက်ခိုက်မှုများအတွက် entry point ဖြစ်လာရန်လွယ်ကူသည်။ ဤဆောင်းပါးသည် PHP ဘာသာစကားကိုအာရုံစိုက်ပြီးဖိုင်တင်ခြင်းနှင့်ဒေါင်းလုပ်လုပ်ခြင်းအတွင်းလုံခြုံရေးကိုထိရောက်စွာထိန်းချုပ်ရန်အသုံးပြုသူ input နှင့် output function များကိုအသုံးပြုနည်းကိုမိတ်ဆက်ပေးလိမ့်မည်။

ဖိုင်များကိုတင်ရန်လုံခြုံရေးထိန်းချုပ်မှုနည်းလမ်း

1 ။ ဖိုင်အမျိုးအစားများကိုကန့်သတ်ပါ

upload တောင်းဆိုမှုမလုပ်ဆောင်မီပထမအဆင့်မှာဖိုင်အမျိုးအစားကိုအတည်ပြုရန်ဖြစ်သည်။ များသောအားဖြင့်ဖိုင် extension များနှင့် MIME အမျိုးအစားများကိုနှစ် ဦး သုံးသိရခြင်းဖြင့်ပြုလုပ်နိုင်သည်။

 
$allowedExtensions = ['jpg', 'png', 'gif'];
$allowedMimeTypes = ['image/jpeg', 'image/png', 'image/gif'];

$uploadedFileExtension = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION));
$uploadedFileType = $_FILES['file']['type'];

if (!in_array($uploadedFileExtension, $allowedExtensions) || 
    !in_array($uploadedFileType, $allowedMimeTypes)) {
    // တရားမဝင်ဖိုင်အမျိုးအစား,အပြောင်းအလဲနဲ့ယုတ္တိဗေဒလုပ်ဆောင်ပါ
}

2 ။ upload ဖိုင်ကိုအမည်ပြောင်းပါ

အန္တရာယ်ရှိသောဇာတ်ညွှန်းနှင့်လမ်းကြောင်းကို overwrite overwrite ကိုတားဆီးရန်အတွက်အသုံးပြုသူများကတင်ထားသောဖိုင်များကိုအလိုအလျောက်အမည်ပြောင်းစေရန်အလိုအလျောက်အမည်ပြောင်းစေရန်အကြံပြုလိုပါသည်။

 
$uploadedFileName = $_FILES['file']['name'];
$uploadedFileExtension = strtolower(pathinfo($uploadedFileName, PATHINFO_EXTENSION));

$newFileName = uniqid() . '.' . $uploadedFileExtension;
$newFilePath = '/path/to/upload/directory/' . $newFileName;

if (move_uploaded_file($_FILES['file']['tmp_name'], $newFilePath)) {
    // အောင်မြင်စွာဖိုင်တင်ပါ
}

3 ။ အကြောင်းအရာ - အဆင့်လုံခြုံရေးစစ်ဆေးမှုများပြုလုပ်ပါ

extension နှင့် Mime စိစစ်အတည်ပြုခြင်းအပြင်ဖိုင်၏အမှန်တကယ်အကြောင်းအရာများကိုထပ်မံလေ့လာရန်အကြံပြုပါသည်။ ဥပမာအားဖြင့်သင်သည် Upimagesize () သို့မဟုတ်တတိယပါတီစာကြည့်တိုက်ကို သုံး. uploaded ဖိုင်သည်ပုံရိပ်အမှန်ဖြစ်ကြောင်းဆုံးဖြတ်ရန်။

 
$fileData = file_get_contents($_FILES['file']['tmp_name']);

if (!is_image($fileData)) {
    // ဖိုင်များသည်ဓာတ်ပုံများမဟုတ်ပါ,အပြောင်းအလဲနဲ့ယုတ္တိဗေဒလုပ်ဆောင်ပါ
}

function is_image($fileData){
    $allowedMimeTypes = ['image/jpeg', 'image/png', 'image/gif'];

    if (function_exists('mime_content_type')) {
        $fileMimeType = mime_content_type($fileData);
        return in_array($fileMimeType, $allowedMimeTypes);
    } else {
        $finfo = new finfo(FILEINFO_MIME_TYPE);
        $fileMimeType = $finfo->buffer($fileData);
        return in_array($fileMimeType, $allowedMimeTypes);
    }
}

ဖိုင်များကိုဒေါင်းလုတ် လုပ်. လုံခြုံရေးထိန်းချုပ်မှုအစီအမံ

1 ။ အသုံးပြုသူလက်လှမ်းမီခွင့်အခွင့်အရေးကိုအတည်ပြုပါ

ဖိုင်ကိုကူးယူခြင်းယုတ္တိဗေဒကိုကူးယူခြင်းမပြုမီအသုံးပြုသူမှတောင်းခံထားသောဖိုင်သည်တည်ရှိပြီးလက်လှမ်းမီမှုအခွင့်အရေးများရှိသည်ဟုအတည်ပြုရန်လိုအပ်သည်။

 
$requestedFilePath = $_GET['file'];

if (!is_file($requestedFilePath) || !is_readable($requestedFilePath)) {
    // ဖိုင်သည်မတည်ရှိပါသို့မဟုတ်မဖတ်နိုင်သောမရှိပါ
}

2 ။ မှန်ကန်သော http တုံ့ပြန်မှုခေါင်းစီးကိုသတ်မှတ်ပါ

browser ကိုမတော်တဆဖြည့်ဆည်းပေးခြင်းမှကာကွယ်ခြင်းမှကာကွယ်ရန်အတွက်ဖိုင်ကူးယူရန်အတွက်လိုအပ်သော HTTP Header သတင်းအချက်အလက်များကိုသတ်မှတ်သင့်သည်။

 
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=" . basename($requestedFilePath));
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . filesize($requestedFilePath));

readfile($requestedFilePath);

အကျဉ်းချုပ်

File Upload ကိုအကောင်အထည်ဖော်သည့်အခါ PHP တွင်ဒေါင်းလုပ်လုပ်ရန်နှင့် PHP တွင်ဒေါင်းလုပ်လုပ်သည့်အခါအခြေခံလုပ်ဆောင်ချက်များအပေါ်သာမှီခိုသည်။ ပိုမိုစိတ်ချရသောနှင့်လုံခြုံသောဖိုင်စီမံခန့်ခွဲမှုစနစ်ကိုဖိုင်အမျိုးအစားအတည်ပြုခြင်း, ပြန်လည်ပြုပြင်ခြင်း, လုံခြုံစိတ်ချရသောစကင်ဖတ်စစ်ဆေးမှုနှင့်ခွင့်ပြုချက်ထိန်းချုပ်မှုကိုဒေါင်းလုပ်လုပ်ခြင်းကဲ့သို့သောနည်းလမ်းများစွာဖြင့်တည်ဆောက်ထားရမည်။ ထို့အပြင် upload file siz ကိုကန့်သတ်ရန်, တင်ပို့သည့်လမ်းညွှန်ခွင့်ပြုချက်ကိုထိန်းချုပ်ရန်နှင့်ဒေါင်းလုပ်လုပ်ခြင်းနှင့်အခြားအသေးစိတ်နည်းဗျူဟာများကိုဒေါင်းလုပ်ဆွဲရန်လည်းအကြံပြုပါသည်။