အင်တာနက်စဉ်ဆက်မပြတ်ဖွံ့ဖြိုးတိုးတက်မှုဖြင့်ဝက်ဘ်ဆိုက်လုံခြုံရေးပြ issues နာများသည်အထူးအရေးကြီးသည်။ အသုံးများသော Web Programming ဘာသာစကားများ, PHP နှင့် CGI တို့သည် 0 က်ဘ်ဆိုက်၏လုံခြုံရေးကာကွယ်စောင့်ရှောက်ရေးအကျိုးသက်ရောက်မှုကိုတိုက်ရိုက်အသုံးပြုသည်။ ဟက်ကာတိုက်ခိုက်မှုများကိုတွန်းလှန်နိုင်ရန် Developer များသည်ဖွံ့ဖြိုးရေးလုပ်ငန်းစဉ်အတွင်းလုံခြုံရေးကာကွယ်စောင့်ရှောက်ရေးအစီအမံများကိုပိုမိုခိုင်မာစေရန်လိုအပ်သည်။ ဤဆောင်းပါးသည် Developeres များကို 4 င်းတို့၏ဝက်ဘ်ဆိုက်များလုံခြုံရေးကိုထိထိရောက်ရောက်တိုးတက်စေရန်အတွက် PHP နှင့် CGI ၏လုံခြုံရေးကာကွယ်စောင့်ရှောက်ရေးနည်းလမ်းများနှင့် CGI ၏အသေးစိတ်အချက်အလက်များကိုအသေးစိတ်ဖော်ပြထားသည်။
အသုံးပြုသူအား 0 က်ဘ်ဆိုက်တွင်ဟက်ကာများကအလွယ်တကူအမြတ်ထုတ်နိုင်စွမ်းရှိသည်။ အသုံးပြုသူ input ကိုအတိအကျစစ်ဆေးခြင်းနှင့်စစ်ထုတ်ခြင်းအားဖြင့်တိုက်ခိုက်ခံရခြင်း၏အန္တရာယ်ကိုထိထိရောက်ရောက်လျှော့ချနိုင်သည်။ ဤတွင်အချို့သောအသုံးများသောအသုံးပြုသူ input အတည်ပြုသည့်နည်းလမ်းများမှာ -
String input အတွက်ဆေးထိုးတိုက်ခိုက်မှုများကိုကာကွယ်ရန်သုံးစွဲသူထည့်သွင်းမှုကို filtering function များကို အသုံးပြု. အသုံးပြုနိုင်သည်။
$ input = $ _GET ['input']; $ filteredinin = filter_var ($ input, filter_sanitize_string);
ကိန်းဂဏန်းသွင်းအားစုများအတွက်, input value သည်မှန်ကန်သောနံပါတ်ဖြစ်ကြောင်းအတည်ပြုရန် `ne_numeric ()` function ကိုသုံးပါ။
$ input = $ _GET ['input']; လျှင် (! is_numeric ($ input)) { သေဆုံး ("မမှန်ကန်သော input"); }
အီးမေးလ်လိပ်စာများသို့မဟုတ် URL များကဲ့သို့သောတိကျသောပုံစံများအတွက်သွင်းအားစုများအတွက်ပုံမှန်အသုံးအနှုန်းများကိုအတည်ပြုရန်အတွက်ပုံမှန်အသုံးအနှုန်းများကိုအသုံးပြုနိုင်သည်။
$ _E = $ _GET ['email']; IF (! Preg_match ("/ ^ * \ w -] + (\ W -] +) * @ ([\ w - z] + [a-za-z] + [a-za-z] + {2,7 z] {2,7 z] {za-z] + သေဆုံး ("မမှန်ကန်သောအီးမေးလ်"); }
စကားဝှက်များသည်အသုံးပြုသူ၏အကောင့်များ၏လုံခြုံရေးကိုကာကွယ်ရန်အတွက်အရေးကြီးသောနည်းလမ်းတစ်ခုဖြစ်ပြီး,
အသုံးပြုသူစကားဝှက်များကိုသိမ်းဆည်းသည့်အခါစကားဝှက်ကိုပေါက်ကြားခြင်းမှကာကွယ်ရန် password ကို encrypt လုပ်ပြီးသိုလှောင်ထားသင့်သည်။
$ စကားဝှက် = $ _post ['password']; $ hashedpassword = password_hash ($ password_default); // သိုလှောင်မှု $ hashedpassword မှဒေတာဘေ့စ်မှ
စကားဝှက်အရှည်နှင့်ရှုပ်ထွေးမှုကဲ့သို့သောစကားဝှက်အားသာချက်လိုအပ်ချက်များကိုသတ်မှတ်ပါ။
$ စကားဝှက် = $ _post ['password']; if (strlen ($ စကားဝှက်) <8) { သေဆုံး ("စကားဝှက်အရှည်သည်အနည်းဆုံးဂဏန်း 8 လုံး"),); }
ဖိုင်တင်ခြင်းလုပ်ဆောင်ချက်သည် 0 က်ဘ်ဆိုက်တွင်ရှိသောဘုံအင်္ဂါရပ်များထဲမှတစ်ခုဖြစ်သည်။ သို့သော်၎င်းသည်အလားအလာရှိသောလုံခြုံရေးအန္တရာယ်လည်းဖြစ်သည်။ ဖိုင်တင်ခြင်းလုံခြုံရေးကိုတိုးတက်စေရန်ဘုံဆိုင်ရာအစီအမံအချို့ကိုဤတွင်ဖော်ပြထားသည်။
ဖိုင်များကိုတင်သည့်အခါအန္တရာယ်ရှိသည့်ဖိုင်များကိုတင်ခြင်းမှရှောင်ရှားရန်ဖိုင် extension သို့မဟုတ် MIME အမျိုးအစားကိုစစ်ဆေးသင့်သည်။
$ file = $ _files ['file']; $ ခွင့်ပြုချက်များ = [JPG ',' GIF ',' GIF '; $ leavitymetypes = ['image / Jpeg', 'Image / PNG', 'Image / GIF'); အကယ်. (! in_array (Pathinfo (Pathinfo), Pathinfo_extension), ! in_array ($ file ['type], $ typeemimetypes),) { သေဆုံး ("ဤဖိုင်အမျိုးအစားကိုတင်ခြင်းကိုခွင့်မပြုပါ"),); }
ဖိုင်တင်ခြင်းဖိုင်တင်ချောင်းပြီးနောက်သိုလှောင်မှုလမ်းကြောင်းသည်လုံခြုံစိတ်ချရသောလမ်းကြောင်းယိုစိမ့်မှုကြောင့်လုံခြုံရေးပြ problems နာများကိုရှောင်ရှားရန်သေချာစေပါ။
$ supepath = '/ လမ်းကြောင်း / too / save'; $ filename = uniqid () ။ '.jpg'; // ထူးခြားသောဖိုင်အမည်ရွှေ့ပြောင်းထားသော just_uploaded_file ($ _ file] ['file file'] ['TMP_NAME'], $ savepath '/' '(' TMP_TATE '],
SQL Injection သည်ဘုံတိုက်ခိုက်မှုနည်းလမ်းများအနက်မှတစ်ခုဖြစ်သည်။ SQL Injection ကိုကာကွယ်ရန်ဘုံနည်းလမ်းများ -
parameters တွေကိုချည်နှောင်ရန် preprocessing ထုတ်ပြန်ချက်များကိုအသုံးပြုခြင်းသည် SQL ဆေးထိုးတိုက်ခိုက်မှုများကိုထိရောက်စွာတားဆီးနိုင်သည်။
$ username = $ _post ['username']; $ စကားဝှက် = $ _post ['password']; $ stmt = $ pdo-> ကြိုတင်ပြင်ဆင်မှု ("Username =: Username =: စကားဝှက် =: လျှို့ဝှက်နံပါတ်"), $ stmt-> Execute ([': အသုံးပြုသူအမည် => $ username' => Username, ': စကားဝှက်' => $ password]);
Parameterized Query မှတစ်ဆင့်အသုံးပြုသူထည့်သွင်းမှုသည်အန္တရာယ်ရှိသောထိုးဆေးကိုကာကွယ်ရန်စုံစမ်းမှုဆိုင်ရာသတ်မှတ်ချက်များကိုစုံစမ်းမှုသတ်မှတ်ချက်များအဖြစ်ဒေတာဘေ့စ်သို့ကူးယူထားသည်။
$ username = $ _post ['username']; $ စကားဝှက် = $ _post ['password']; $ stmt = $ pdo-> ကြိုတင်ပြင်ဆင်မှု ("username = username = password =?");); $ stmt-> Execute ([$ username, $ password]);
အသုံးပြုသူ inputification ကိုအားဖြည့်ခြင်းဖြင့်စကားဝှက်ကိုစစ်ဆေးခြင်းအားဖြင့်စကားဝှက်ကိုမြှင့်တင်ခြင်း, 0 ဘ်ဆိုဒ်ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်အတွင်း 0 ဘ်ဆိုဒ်နှင့်အသုံးပြုသူများ၏သတင်းအချက်အလက်လုံခြုံရေးကိုကာကွယ်ရန်ဤလုံခြုံရေးအစီအမံများကိုဂရုပြုရမည်။