မျက်မှောက်ခေတ်ကွန်ယက်အက်ပလီကေးရှင်းများတွင်အသုံးပြုသူများသည်ရုပ်ပုံများနှင့်မာလ်တီမီဒီယာဖိုင်များကို upload လုပ်ရန်အသုံးပြုသူများအတွက်ဘုံလိုအပ်ချက်ဖြစ်လာသည်။ သို့သော်ဖိုင်များကိုတင်ခြင်းနှင့်အလားအလာရှိသောအန္တရာယ်များကိုမည်သို့ရှောင်ရှားနိုင်မည်နည်း။ ဤဆောင်းပါးသည် PHP ကို အသုံးပြု. PHP ကို အသုံးပြု. ဒေတာစီစစ်ခြင်းအတွက်အသုံးပြုသောအချက်အလက်များကိုဖြည့်ဆည်းပေးပြီးအသုံးပြုသည်။
ပထမ ဦး စွာတင်ထားသောဖိုင်သည်ခွင့်ပြုထားသောပုံသို့မဟုတ်မာလ်တီမီဒီယာပုံစံနှင့်သက်ဆိုင်သည်ကိုသင်အတည်ပြုရန်လိုအပ်သည်။ ဖိုင် 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 ကိုဖြတ်သန်းနိုင်သလားဆုံးဖြတ်သည်။
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 အထိကန့်သတ်ထားသည်။ ၎င်းသည်ထက်ကျော်လွန်ပါကအပ်လုဗင်ကိုငြင်းဆန်လိမ့်မည်။
ဖိုင်အတည်ပြုချက်ကိုအတည်ပြုပြီးနောက်ဖိုင်အမည်ပ 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 သည်ဓာတ်ပုံများနှင့်မာလ်တီမီဒီယာဖိုင်များကိုအသုံးပြုသူများ၏လုံခြုံရေးကိုထိရောက်စွာစစ်ဆေးနိုင်သည်။ ဤဆောင်းပါးတွင်နမူနာကုဒ်သည်သင်၏အမှန်တကယ်စီမံကိန်းတွင်တင်ထားသောအချက်အလက်များကိုလုပ်ဆောင်ရန်အတွက်အထောက်အကူပြုလိမ့်မည်။