နိဒါန်း
PHP သည်ကျယ်ပြန့်စွာအသုံးပြုသော server-side scripting language ဖြစ်သည်။ သို့သော် PHP တွင်အသုံးပြုမှုနှင့်ပြောင်းလွယ်ပြင်လွယ်မှုလွယ်ကူခြင်း၏နောက်ကွယ်တွင်လုံခြုံရေးဆိုင်ရာစိန်ခေါ်မှုများလည်းရှိသည်။ ဤဆောင်းပါးသည်ဘုံ PHP လုံခြုံရေးထိခိုက်မှုများကိုနက်နက်နဲနဲလေ့လာသုံးသပ်ပြီး developer များကနမူနာကုဒ်များမှတစ်ဆင့်ဤအားနည်းချက်များကိုကာကွယ်ရန်ကူညီပေးရန်ကူညီလိမ့်မည်။
SQL injection တိုက်ခိုက်မှုများသည်ဘုံလုံခြုံရေးအားနည်းချက်များအနက်မှတစ်ခုဖြစ်သည်။ တိုက်ခိုက်သူများသည် SQL ထုတ်ပြန်ချက်များကိုမှားယွင်းစွာထိုးသွင်းခြင်းဖြင့်ဒေတာဘေ့စ်တွင်ခွင့်ပြုချက်မရှိသောလုပ်ငန်းများကိုလုပ်ဆောင်နိုင်သည်။ SQL ထိုးဆေးကိုကာကွယ်ရန် Preprocessed ထုတ်ပြန်ချက်များနှင့် parameter စည်းချက်ကိုအသုံးပြုရန်အကြံပြုသည်။ ဤတွင်နမူနာကုဒ်ဖြစ်သည်။
<?php // အသုံးပြုသူထည့်သွင်းမှုမှအသုံးပြုသူအမည်နှင့်စကားဝှက်ကိုရယူပါ $username = $_POST['username']; $password = $_POST['password']; // ဒေတာဘေ့စ်ကိုဆက်သွယ်ပါ $db = new PDO('mysql:host=localhost;dbname=mydb', 'username', 'password'); // preprocessing ထုတ်ပြန်ချက်များနှင့် parameter စည်းနှောင်ကိုသုံးပါ SQL မေးမြန်း $stmt = $db-> ပြင်ဆင်ပါ ('username =: အသုံးပြုသူအမည်နှင့်စကားဝှက် =: လျှို့ဝှက်နံပါတ် ") ကိုပြင်ဆင်ပါ။ $ stmt-> bindvalue (': အသုံးပြုသူအမည်', $ username); $ stmt-> bindvalue (': စကားဝှက်', $ စကားဝှက်); $ stmt-> execute (); // စုံစမ်းမှုရလဒ် $ အသုံးပြုသူ = $ user = $ stmt-> fetch (); // query ရလဒ်သည်ဗလာဖြစ်လျှင်, ဆိုလိုသည်မှာ username သို့မဟုတ် password သည်မှားသည် (! $ user) { ECHO "မမှန်ကန်သောသုံးစွဲသူအမည်သို့မဟုတ်စကားဝှက်။ "; } အခြား ပဲ့တင်သံ "ကြိုဆိုပါတယ်" ။ $ အသုံးပြုသူ ['username'] ။ "!"; } >
XSS (Cross-site scripting scripting attaching) သည်အခြားသောလုံခြုံရေးအားနည်းချက်ဖြစ်သည်။ XSS ၏တိုက်ခိုက်မှုများကိုကာကွယ်ရန်ထိရောက်သောနည်းလမ်းမှာ HTML အထူးအက္ခရာများကိုအသုံးပြုသူထည့်သွင်းမှု၏ထူးခြားသောလက္ခဏာများမှလွတ်မြောက်ရန်ဖြစ်သည်။ ဤတွင်နမူနာကုဒ်ဖြစ်သည်။
<?php // အသုံးပြုသူ input မှမှတ်ချက်အကြောင်းအရာကိုရယူပါ $comment = $_POST['comment']; // မှတ်ချက်ပေးသည့်အကြောင်းအရာများကိုပြုလုပ်သည် HTML အထူးဇာတ်ကောင်ထွက်ပေါက် $escapedComment = htmlspecialchars($comment); // မှတ်ချက်များကိုဒေတာဘေ့စ်သို့သိမ်းဆည်းပါ $db-> Query ("Comments (Content) တန်ဖိုးများ ('$ escapedcomment')" "" "ထဲသို့ထည့်ပါ။ >
ဖိုင်တင်ဆက်မှုသည်ပိတ်ဆို့မှုအားနည်းချက်ကတိုက်ခိုက်သူအားအန္တရာယ်ရှိသောဖိုင်များကိုတင်ခြင်းဖြင့်ဆာဗာတွင်မတရားသောကုဒ်များကိုလုပ်ဆောင်ရန်ခွင့်ပြုသည်။ ဖိုင်တင်ခြင်းအားနည်းချက်များကိုကာကွယ်ရန်ဖိုင်၏အမျိုးအစားနှင့်အရွယ်အစားအကန့်အသတ်ရှိရမည်။ တင်ထားသောဖိုင်များ၏အမျိုးအစားနှင့်အရွယ်အစားကိုမည်သို့ကန့်သတ်ရမည်ကိုပြသသောနမူနာကုဒ်ဖြစ်သည်။
<?php // တင်ထားသောဖိုင်များမှသက်ဆိုင်ရာသတင်းအချက်အလက်များကိုရယူပါ $fileName = $_FILES['file']['name']; $fileSize = $_FILES['file']['size']; $fileTmp = $_FILES['file']['tmp_name']; $fileError = $_FILES['file']['error']; // ဖိုင်အမျိုးအစားနှင့်အရွယ်အစားကိုစစ်ဆေးပါ $fileExt = pathinfo($fileName, PATHINFO_EXTENSION); $allowedTypes = array('jpg', 'jpeg', 'png'); $maxSize = 1000000; // 1MB if (!in_array($fileExt, $allowedTypes) || $fileSize > $ maxsize) { ပဲ့တင်သံ "မမှန်ကန်သောဖိုင်အမျိုးအစားသို့မဟုတ်အရွယ်အစား။ "; } အခြား // ဖိုင်ကိုသတ်မှတ်ထားသော directory move_uploaded_file ($ filetmp, 'uploads /') သို့သိမ်းဆည်းပါ။ ECHO "ဖိုင်တင်ခြင်းကိုအောင်မြင်စွာတင်လိုက်ပြီ"; } >
PHP လုံခြုံရေးသည် developer များအတွက်အလွန်အရေးကြီးသည်။ မှန်ကန်သောအမှားကိုင်တွယ်ခြင်းနှင့်ကာကွယ်စောင့်ရှောက်ရေးအစီအမံများမှတဆင့်ကျွန်ုပ်တို့သည်ဘုံလုံခြုံရေးအားနည်းချက်များကိုထိရောက်စွာလျှော့ချနိုင်သည်။ ဥပမာအားဖြင့် Proprocessed ထုတ်ပြန်ချက်များနှင့် parameter စည်းချက်များကိုအသုံးပြုခြင်းသည် SQL Injection ကိုအသုံးပြုခြင်းအားဖြင့် SQL Injection ကိုအသုံးပြုခြင်းအားဖြင့် HTML အထူးဇာတ်ကောင် Els သည် XSS တိုက်ခိုက်မှုများကိုကာကွယ်နိုင်ပြီးဖိုင်အမျိုးအစားနှင့်အရွယ်အစားကိုကန့်သတ်ထားသည်။ သတိပေးချက်တည်းခိုခြင်းနှင့်သင့်လျော်သောလုံခြုံရေးအစီအမံများကိုရယူခြင်းဖြင့်သာ application များနှင့်အသုံးပြုသူများ၏အချက်အလက်များကိုကျွန်ုပ်တို့ထိထိရောက်ရောက်ကာကွယ်နိုင်သည်။