လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP file upload လုံခြုံရေးကာကွယ်မှု - အန္တရာယ်ရှိတဲ့ဖိုင်တင်ခြင်းကိုထိရောက်စွာတားဆီးနိုင်ပုံ

PHP file upload လုံခြုံရေးကာကွယ်မှု - အန္တရာယ်ရှိတဲ့ဖိုင်တင်ခြင်းကိုထိရောက်စွာတားဆီးနိုင်ပုံ

M66 2025-06-12

PHP ဒေတာစီစစ်ခြင်း - အန္တရာယ်ရှိသောဖိုင်တင်ခြင်းကိုကာကွယ်ပါ

မကြာသေးမီနှစ်များအတွင်းကွန်ယက်နည်းပညာဖွံ့ဖြိုးတိုးတက်မှုနှင့်အတူအန္တရာယ်ရှိသောဖိုင်တင်ကြွတင်မှုများသည်အင်တာနက်လုံခြုံရေးအတွက်အဓိကခြိမ်းခြောက်မှုတစ်ခုဖြစ်လာသည်။ အန္တရာယ်ရှိသောဖိုင်များကိုတင်ခြင်းအားဖြင့်တိုက်ခိုက်သူသည်ဝက်ဘ်ဆိုက်၏ဖိုင်တင်ပါးတင်ခြင်းကန့်သတ်ချက်များကိုကျော်လွှားနိုင်သည်။ 0 က်ဘ်ဆိုက်၏လုံခြုံရေးကိုတိုးတက်စေရန်အတွက်ကျွန်ုပ်တို့သည်အန္တရာယ်ရှိတဲ့ဖိုင်များ၏ upload ကိုထိရောက်စွာကာကွယ်ရန် PHP code ရှိတင်ထားသောဖိုင်များကို filter လုပ်ပြီးအတည်ပြုရန်လိုအပ်သည်။

    ဖိုင်နောက်ဆက်စစ်ဆေးပါ

    အန္တရာယ်ရှိသောဖိုင်များကိုဘုံဖိုင်အမျိုးအစားများအဖြစ်မကြာခဏကူးစက်တတ်သဖြင့်တင်ထားသောဖိုင်များ၏နောက်ဆက်ကိုစစ်ဆေးခြင်းသည်အန္တရာယ်ရှိသောတင်ပို့မှုကိုတားဆီးရန်ပထမခြေလှမ်းဖြစ်သည်။ ဤတွင်ရိုးရှင်းသောဥပမာကုဒ်တစ်ခုဖြစ်သည်။

    $ ခွင့်ပြုချက် = array (JPG ',' JPEG ',' PNG ',' GIF '); လွတ်ရှင်ဖိုင်အမျိုးအစားများ $ filextension = strtollowe (pathinfo (file file) (file file file '] ကိုခွင့်ပြုပါ။ // ဖိုင်နောက်ဆက်ကိုရယူပါ။
        Die ('image files များကိုသာတင်ခြင်းကိုခွင့်ပြုသည်'),
    }
    

    ဖိုင်အမျိုးအစားစစ်ဆေးမှုစစ်ဆေးပါ

    နောက်ဆက်တွဲစစ်ဆေးမှုအပြင်ဖိုင်၏ MIMA အမျိုးအစားကိုအတည်ပြုရန်မှာလည်းထပ်တူအရေးကြီးသည်။ ၎င်းသည်အန္တရာယ်ရှိသောဖိုင်များကိုတရားဝင်ဖိုင်များဖုံးကွယ်ထားခြင်းမှတားဆီးပေးသည်။ MIME အမျိုးအစားကို MIME အမျိုးအစားကိုရယူရန် PHPP ၏ MIME_Content_TYPE () function ကိုသင်အသုံးပြုနိုင်သည်။ အောက်ဖော်ပြပါသည်ဥပမာကုဒ်ဖြစ်သည်။

    $ leavitymypes = array (image / Jpeg ',' Image / PNG ',' Image / GIF '); လွင့်စင် - တင်ထားသော MIME အမျိုးအစား $ uploadedFile = $ _files ['file file'] ['file tmp_name']; // uploaded ယာယီဖိုင်လမ်းကြောင်းကို $ uploadedmimetype = Mime_Content_type ($ uploadedfile) ကိုရယူပါ။ // အကယ်. (! In_array ($ uploadedmimetype, $ uloloadedmimetype, $ leaventympes))
        Die ('image files များကိုသာတင်ခြင်းကိုခွင့်ပြုသည်'),
    }
    

    ဖိုင်အရွယ်အစားစစ်ဆေးမှုများ

    ဆာဗာအရင်းအမြစ်များ (သို့) bandwidth ကိုသိမ်းပိုက်ခြင်းမှအလွန်အကျွံတင်ပို့ခြင်းမှကာကွယ်ရန်ကျွန်ုပ်တို့သည်တင်ထားသောဖိုင်များ၏အရွယ်အစားကိုကန့်သတ်ရန်လိုအပ်သည်။ PHP သည်ဖိုင်အရွယ်အစားကို $ _files ['file' ကို ဖြတ်. ရနိုင်သည်။

    $ maxfileesize = 5 * 1024 * 1024; // အများဆုံးဖိုင်အရွယ်အစားကိုတင်ရန်ခွင့်ပြုထားသည် (5MB)
    $ uploadedFileSeize = $ _files ['file'] ['size']; // အကယ်. ($ uploadededfilesize> $ Maxfileizeize) ဆိုလျှင်တင်ထားသောဖိုင်အရွယ်အစားကိုရယူပါ။
        သေဆုံး (ဖိုင်အရွယ်အစားသည်ကန့်သတ်ချက်ထက်ကျော်လွန်နေသည် ');
    }
    

    ဖိုင်အမည်ကိုပုံတူပွားခြင်းမရှိပါ

    မတူညီသောအသုံးပြုသူများကတင်ထားသောဖိုင်အမည်များကိုမိတ္တူကူးယူရန်ပျက်ကွက်နိုင်ရန်အတွက်ကျွန်ုပ်တို့သည်တင်ထားသောဖိုင်ကိုအမည်ပြောင်းနိုင်သည်။ PHP ၏ Uniqid () function ကို သုံး. ထူးခြားသောဖိုင်အမည်ကိုထုတ်လုပ်ရန်နှင့်ဖိုင်အမျိုးအစားအသစ်ကိုဖွဲ့စည်းရန်ဖိုင်နောက်ဆက်နှင့်ပေါင်းစပ်ပါ။ ဤတွင်သက်ဆိုင်ရာဥပမာကုဒ်ဖြစ်သည်။

    $ uploadedFilename = $ _files ['file'] ['name']; // uploaded file ၏မူရင်းဖိုင်အမည် $ NewFilename = Uniqid ()) ကိုရယူပါ။ '' '' ။ $ filextension; // ဖိုင်အမည်အသစ်တစ်ခုကိုထုတ်လုပ်ရန် $ uploadedFilePathath = './uploads/' '။ $ NewFilename; // အကယ်. uploaded file ကိုသိမ်းဆည်းရန်လမ်းကြောင်းကိုချမှတ်ရန်လမ်းကြောင်းကိုသတ်မှတ်ရန် (Move_uploaded_file) ['tmp_name'], $ uploadedfilepathath)
        Echo 'File Upload ကိုအောင်မြင်စွာ';
    } အခြား
        Echo 'File Upload မအောင်မြင်ပါ,
    }
    

    အကျဉ်းချုပ်

    SUFUX စစ်ဆေးမှုကိုကူးယူရန်အတွက် MIME အမျိုးအစားစစ်ဆေးခြင်းနှင့်ဖိုင်အရွယ်အစားကန့်သတ်ချက်များနှင့်ဖိုင်အမည်အရဖိုင်အမည်ကာကွယ်တားဆီးရေးဖိုင်တွဲလက်တွေ့ကာကွယ်တားဆီးရေးကိုကျွန်ုပ်တို့အနေဖြင့်ရယူရန်။ ထို့အပြင်ဆာဗာဆော့ဖ်ဝဲကိုပုံမှန်အဆင့်မြှင့်တင်ခြင်းနှင့်လူသိများသောအားနည်းချက်များကိုပုံမှန်အဆင့်မြှင့်တင်ခြင်းနှင့်အဆင်သင့်သည် ဤအစီအမံများမှတဆင့် 0 က်ဘ်ဆိုက်၏လုံခြုံရေးကိုအာမခံနိုင်သည်, ဒေတာနှင့်အသုံးပြုသူသီးသန့်တည်ရှိမှုကိုကာကွယ်နိုင်သည်။