လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP ဖိုင်တင်ခြင်းလုံခြုံရေးစစ်ထုတ်ခြင်း

PHP ဖိုင်တင်ခြင်းလုံခြုံရေးစစ်ထုတ်ခြင်း

M66 2025-06-10

PHP ဒေတာစီစစ်ခြင်း - အသုံးပြုသူများမှတင်ထားသောဓာတ်ပုံများနှင့်မာလ်တီမီဒီယာဖိုင်များကိုလုံခြုံစွာလုပ်ဆောင်ခြင်း

မျက်မှောက်ခေတ်ကွန်ယက်အက်ပလီကေးရှင်းများတွင်အသုံးပြုသူများသည်ရုပ်ပုံများနှင့်မာလ်တီမီဒီယာဖိုင်များကို upload လုပ်ရန်အသုံးပြုသူများအတွက်ဘုံလိုအပ်ချက်ဖြစ်လာသည်။ သို့သော်ဖိုင်များကိုတင်ခြင်းနှင့်အလားအလာရှိသောအန္တရာယ်များကိုမည်သို့ရှောင်ရှားနိုင်မည်နည်း။ ဤဆောင်းပါးသည် PHP ကို ​​အသုံးပြု. PHP ကို ​​အသုံးပြု. ဒေတာစီစစ်ခြင်းအတွက်အသုံးပြုသောအချက်အလက်များကိုဖြည့်ဆည်းပေးပြီးအသုံးပြုသည်။

တင်ထားသောဖိုင်၏ extension ကိုအတည်ပြုပါ

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

 $allowedExtensions = ['jpg', 'jpeg', 'png', 'gif'];  
$uploadedFileExtension = pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);  
if (!in_array(strtolower($uploadedFileExtension), $allowedExtensions)) {
echo "အောက်ပါဖိုင်အမျိုးအစားများကိုသာခွင့်ပြုသည်:jpg, jpeg, png, gif";
exit;
}

အထက်ဖော်ပြပါကုဒ်သည် Pathinfo () function ကိုအသုံးပြုသည်။ ဖိုင် extension ကိုရယူရန်အတွက်ဖိုင် extension ကိုရယူရန်နှင့်၎င်းသည် in_rray () function ကိုဖြတ်သန်းနိုင်သလားဆုံးဖြတ်သည်။

တင်ထားသောဖိုင်၏ MIME အမျိုးအစားကိုစစ်ဆေးပါ

extension သည်အရေးကြီးသော်လည်းပိုမိုတိကျသောစိစစ်အတည်ပြုဖိုင်သည် MIME အမျိုးအစားကို ဖြတ်. ဖြစ်သည်။ PHP ၏ built-in finfo_file () function ကို function သည် Masquerade ဖိုင်များကိုတင်ခြင်းကိုကာကွယ်ရန်အတွက်တကယ့် MIME အမျိုးအစားကိုရနိုင်သည်။

 $allowedMimeTypes = ['image/jpeg', 'image/png', 'image/gif'];  
$uploadedFileMimeType = finfo_file(finfo_open(FILEINFO_MIME_TYPE), $_FILES['file']['tmp_name']);  
if (!in_array($uploadedFileMimeType, $allowedMimeTypes)) {
echo "အောက်ပါဖိုင်အမျိုးအစားများကိုသာခွင့်ပြုသည်:jpeg, png, gif";
exit;
}

Mime အမျိုးအစားစိစစ်အတည်ပြုမှတဆင့်လုံခြုံရေးကို upload လုံခြုံရေးကိုများစွာတိုးတက်စေနိုင်သည်။

တင်ထားသောဖိုင်များ၏အရွယ်အစားကိုကန့်သတ်ပါ

ဆာဗာအရင်းအမြစ်များကိုသိမ်းဆည်းရန်နှင့်ကြီးမားသောဖိုင်များကိုအန္တရာယ်ရှိသောအန္တရာယ်များကိုရှောင်ရှားနိုင်ရန်အတွက် upload အရွယ်အစားကိုကန့်သတ်ထားရမည်။

 $maxFileSize = 10 * 1024 * 1024; // 10MB  
if ($_FILES['file']['size'] > $maxFileSize) {
echo "ဖိုင်အရွယ်အစားကို တင်. မကျော်လွန်နိုင်ပါ10MB";
exit;
}

ဤဥပမာသည်ဖိုင်အရွယ်အစားကို 10MB အထိကန့်သတ်ထားသည်။ ၎င်းသည်ထက်ကျော်လွန်ပါကအပ်လုဗင်ကိုငြင်းဆန်လိမ့်မည်။

Safe Storage Safe Safe Doads ဖိုင်များကိုတင်ပါ

ဖိုင်အတည်ပြုချက်ကိုအတည်ပြုပြီးနောက်ဖိုင်အမည်ပ conflicts ိပက်ခများနှင့်လမ်းကြောင်းယိုစိမ့်မှုကိုကာကွယ်ရန်ဖိုင်ကိုလုံခြုံစွာသိမ်းဆည်းရန်လိုအပ်သည်။

 $uploadDirectory = 'uploads/';  
$uploadedFileName = $_FILES['file']['name'];  
$uploadedFileTempName = $_FILES['file']['tmp_name'];  
$newFileName = uniqid('', true) . '.' . $uploadedFileExtension;  
$destination = $uploadDirectory . $newFileName;  
if (move_uploaded_file($uploadedFileTempName, $destination)) {
echo "ဖိုင်ကိုအောင်မြင်စွာတင်ထားပြီးပါပြီ";
} else {
echo "ဖိုင်တင်ခြင်းမအောင်မြင်ပါ";
exit;
}

ဖိုင် overwriting ကိုထိရောက်စွာရှောင်ရှားရန်ထူးခြားသောဖိုင်အမည်ကိုထုတ်လုပ်ရန် Uniqid () function ကိုသုံးပါ။

တင်ထားသောဓာတ်ပုံများနှင့်မာလ်တီမီဒီယာဖိုင်များကိုလုံခြုံစွာပြသခြင်း

ဝက်ဘ်စာမျက်နှာများပေါ်တွင်ဖိုင်များတင်ခြင်းကိုပြသခြင်းတွင် XSS ကဲ့သို့သောလုံခြုံရေးဆိုင်ရာကိစ္စရပ်များမှရှောင်ရှားရန် HTML tags များကိုမှန်ကန်စွာအသုံးပြုသည်ကိုသေချာစေရန်လိုအပ်သည်။ ရရှိနိုင်ပုံများ Tags များ, သို့သော်ဖိုင်ရင်းမြစ်နှင့်လမ်းကြောင်းကိုတင်းကြပ်စွာထိန်းချုပ်သင့်သည်။ မာလ်တီမီဒီယာဖိုင်များရရှိနိုင်ပါသည်

အကျဉ်းချုပ်

ဖိုင် extension, MIME အမျိုးအစားနှင့်အရွယ်အစားကန့်သတ်ချက်များကိုပြည့်စုံစွာအတည်ပြုခြင်းအားဖြင့် PHP ဒေတာ filtering သည်ဓာတ်ပုံများနှင့်မာလ်တီမီဒီယာဖိုင်များကိုအသုံးပြုသူများ၏လုံခြုံရေးကိုထိရောက်စွာစစ်ဆေးနိုင်သည်။ ဤဆောင်းပါးတွင်နမူနာကုဒ်သည်သင်၏အမှန်တကယ်စီမံကိန်းတွင်တင်ထားသောအချက်အလက်များကိုလုပ်ဆောင်ရန်အတွက်အထောက်အကူပြုလိမ့်မည်။