အင်တာနက်နည်းပညာလျင်မြန်စွာဖွံ့ဖြိုးတိုးတက်မှုနှင့်အတူဝက်ဘ်ဆိုက်များပိုမိုများပြားလာခြင်းဖြင့်အသုံးပြုသူအချက်အလက်များကိုဆက်လက်စုဆောင်းရန်နှင့်စုဆောင်းရန်လိုအပ်သည်။ 0 က်ဘ်ဆိုက်နှင့်အပြန်အလှန်ဆက်သွယ်ရန်အသုံးပြုသူများအတွက်အရေးကြီးသောကိရိယာတစ်ခုအနေဖြင့်ပုံစံများသည်သတင်းအချက်အလက်များကိုမလုံလောက်ခြင်း, ဤဆောင်းပါးသည် PHP ၏ Form လုံခြုံရေးနှင့်ပတ်သက်သောဘုံနားလည်မှုလွဲမှားခြင်းများကိုခွဲခြမ်းစိတ်ဖြာပြီး developer များထံမှတည်ဆောက်သူများတိုးတက်အောင်ကူညီရန်တိကျသောကြိုတင်ကာကွယ်မှုများနှင့်သင်္ကေတများပေးလိမ့်မည်။
1 ။ client data ကိုယုံကြည်စိတ်ချပါ
developer အတော်များများတွင်နားလည်မှုလွဲခြင်းများရှိသည်။ 0 န်ဆောင်မှုခံယူသူမှတင်ပြသောအချက်အလက်များအပေါ်သူတို့မှီခိုနေပြီး၎င်းသည်ယုံကြည်စိတ်ချထိုက်သည်ဟုယုံကြည်ကြသည်။ အမှန်မှာဟက်ကာများသည် browser developer tools များမှတဆင့်ပုံစံဒေတာများကိုအလွယ်တကူကြည့်ရှုနိုင်သည်။ ထို့ကြောင့် client data ကိုယုံကြည်စိတ်ချရမှုနှင့်ခိုင်လုံသော server-side side စိစစ်အတည်ပြုခြင်းဟုမှတ် ယူ. မရပါ။
2 ။ အသုံးပြုသူ input မှ filtering ကိုလျစ်လျူရှုခြင်းနှင့်လွတ်မြောက်ရန်
ဘက်မလိုက်သောသုံးစွဲသူထည့်သွင်းမှုသည် 0 က်ဘ်စာမျက်နှာအတွက်လုံခြုံရေးအန္တရာယ်များကိုထုတ်ဖော်ပြောဆိုလိမ့်မည်။ အထူးသဖြင့် XSS တိုက်ခိုက်မှုများအတွက်ဟက်ကာများသည်အခြားအန္တရာယ်ရှိသော JavaScript code များကို form input box များထဲသို့ထည့်သွင်းနိုင်သည်။ ထို့ကြောင့်ဝဘ်စာမျက်နှာတစ်ခုသို့အချက်အလက်များကိုထုတ်ယူခြင်းတွင်သင့်လျော်သောစစ်ထုတ်ခြင်းနှင့်ထွက်ပေါက်လုပ်ဆောင်ချက်များလိုအပ်သည်။
1 ။ http post နည်းလမ်းကိုသုံးပါ
Get Method နှင့်နှိုင်းယှဉ်ပါက Post နည်းလမ်းသည်အထိခိုက်မခံသောအချက်အလက်များကို URL သို့ဖော်ထုတ်ခြင်းကိုရှောင်ရှားနိုင်သည်။
2 ။ server-side စိစစ်အတည်ပြု
ရှေ့ပြေးအတည်ပြုချက်သည်အသုံးပြုသူအတွေ့အကြုံကိုတိုးတက်စေနိုင်သဖြင့်စစ်မှန်သောလုံခြုံရေးအတည်ပြုချက်ကိုဆာဗာဘက်တွင်ပြုလုပ်ရမည်။ PHP သည် developer များက developer များတင်းကြပ်စွာအတည်ပြုရန်ကူညီရန် verification functions များနှင့်ပုံမှန်အသုံးအနှုန်းများကိုထောက်ပံ့ပေးသည်။ ဤတွင်ရိုးရှင်းသောဥပမာကုဒ်တစ်ခုဖြစ်သည်။
အကယ်. (ISSET) (_ $ _ _ username ']))) $ username = $ _post ['username']; // server-side verification ကို (strlen ($ username) <4) { ECHO "Username ရဲ့အရှည်ဟာစာလုံး 4 လုံးထက်နည်းလို့မရဘူး"; } အခြား (! Preg_match ("/ ^ za-z0-9 _] +", $ username)) ECHO "သုံးစွဲသူအမည်များတွင်အက္ခရာများ, } အခြား // အတည်ပြုအတည်ပြုပြီးနောက်နောက်ဆက်တွဲစစ်ဆင်ရေးများပြုလုပ်နိုင်သည်} }
3 ။ အသုံးပြုသူ input ကို filter နှင့်ထွက်ပေါက်
XSS တိုက်ခိုက်မှုများကိုကာကွယ်ရန်အသုံးပြုသူမှထည့်သွင်းထားသောအကြောင်းအရာကိုလွတ်မြောက်ရန်လိုအပ်သည်။ PHP ရှိ `htmlspecialchars ()` function ကို `function ကိုအသုံးပြုသူများကတင်သွင်းသောဒေတာများကိုလုံခြုံစွာလုပ်ဆောင်ရန်အသုံးပြုနိုင်သည်။ ဥပမာများမှာအောက်ပါအတိုင်းဖြစ်သည် -
IF (ISSET ($ _ post ['']))) $ အကြောင်းအရာ = $ _post ['Content']; // အသုံးပြုသူ input ကိုမှလွတ်မြောက်ရန် htmlspecialchars function ကိုအသုံးပြုပါ $ content = htmlspecialchars ($ အကြောင်းအရာ, ent_quotes 'utf-8'); // output filtered အကြောင်းအရာ Echo $ အကြောင်းအရာ; }
4 ။ SQL ဆေးထိုးခြင်းကိုကာကွယ်ပါ
SQL Injection Attack သည်အန္တရာယ်ရှိသော SQL ထုတ်ပြန်ချက်များကိုတည်ဆောက်ခြင်းဖြင့်ဒေတာဘေ့စ်သတင်းအချက်အလက်များကိုရယူခြင်းအားဖြင့် SQL ထုတ်ပြန်ချက်များ၏လုံခြုံရေးကိုသေချာစေရန်ကြိုတင်ထုတ်ပြန်ခြင်းသို့မဟုတ် parameterized မေးမြန်းချက်များကိုအသုံးပြုရမည်။ SQL Injection ကိုကာကွယ်ရန် PDO ၏ POPDO ၏ကြိုတင်ကြေငြာချက်ကိုအသုံးပြုခြင်းဥပမာဖြစ်သည်။
IF (ISSET ($ _ post ['id]))) $ ID = $ _post ['ID']; // POSPO POPOCessing ထုတ်ပြန်ကြေငြာချက် $ stmt = $ pdo-> ပြင်ဆင် ("id =" အသုံးပြုသူများထံမှ select * ကိုရွေးချယ်ပါ။ ); $ stmt-> execute ([$ ID]); // လုပ်ငန်းစဉ်၏ရလဒ်ခြင်းရလဒ် $ ရလဒ် = $ stmt-> fetch (PDO :: FETT_AST_AST_AST_); }
Form Security သည် PHP developer တိုင်းကိုဂရုပြုသင့်သည့်ပြ issue နာတစ်ခုဖြစ်သည်။ အထက်ဖော်ပြပါဘုံနားလည်မှုလွဲမှားခြင်းများကိုရှောင်ရှားခြင်းနှင့်ထိရောက်သောလုံခြုံရေးအစီအမံများကိုရှောင်ရှားခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် 0 ဘ်ဆိုဒ်၏လုံခြုံရေးကိုပိုမိုကောင်းမွန်စွာတိုးတက်စေပြီးသုံးစွဲသူများ၏အချက်အလက်များကိုအန္တရာယ်ရှိသောတိုက်ခိုက်မှုများမှကာကွယ်နိုင်သည်။ ကျိုးကြောင်းဆီလျော်သော server-side side အတည်ပြုခြင်းဖြင့် filtering, forment processing နှင့် SQL anti-into anti-into into-into intection နည်းပညာကိုကျွန်ုပ်တို့ပိုမိုယုံကြည်စိတ်ချရသော 0 န်ဆောင်မှုများကိုသေချာစေနိုင်သည်။