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

PHP အမှားကိုင်တွယ်ခြင်း - ဘုံလုံခြုံရေးအားနည်းချက်များနှင့်အကာအကွယ်အစီအမံများကိုကာကွယ်ခြင်း

M66 2025-06-13

PHP အမှားကိုင်တွယ်ခြင်း - ဘုံလုံခြုံရေးအားနည်းချက်များနှင့်ကာကွယ်စောင့်ရှောက်ရေးအစီအမံများကိုကာကွယ်ခြင်း

နိဒါန်း
PHP သည်ကျယ်ပြန့်စွာအသုံးပြုသော server-side scripting language ဖြစ်သည်။ သို့သော် PHP တွင်အသုံးပြုမှုနှင့်ပြောင်းလွယ်ပြင်လွယ်မှုလွယ်ကူခြင်း၏နောက်ကွယ်တွင်လုံခြုံရေးဆိုင်ရာစိန်ခေါ်မှုများလည်းရှိသည်။ ဤဆောင်းပါးသည်ဘုံ PHP လုံခြုံရေးထိခိုက်မှုများကိုနက်နက်နဲနဲလေ့လာသုံးသပ်ပြီး developer များကနမူနာကုဒ်များမှတစ်ဆင့်ဤအားနည်းချက်များကိုကာကွယ်ရန်ကူညီပေးရန်ကူညီလိမ့်မည်။

1 ။ SQL ထိုးဆေးထိုး

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-> ပြင်ဆင်ပါ (&#39;username =: အသုံးပြုသူအမည်နှင့်စကားဝှက် =: လျှို့ဝှက်နံပါတ် ") ကိုပြင်ဆင်ပါ။
$ stmt-> bindvalue (&#39;: အသုံးပြုသူအမည်&#39;, $ username);
$ stmt-> bindvalue (&#39;: စကားဝှက်&#39;, $ စကားဝှက်);
$ stmt-> execute ();

// စုံစမ်းမှုရလဒ် $ အသုံးပြုသူ = $ user = $ stmt-> fetch ();

// query ရလဒ်သည်ဗလာဖြစ်လျှင်, ဆိုလိုသည်မှာ username သို့မဟုတ် password သည်မှားသည် (! $ user) {
    ECHO "မမှန်ကန်သောသုံးစွဲသူအမည်သို့မဟုတ်စကားဝှက်။ ";
} အခြား
    ပဲ့တင်သံ "ကြိုဆိုပါတယ်" ။ $ အသုံးပြုသူ [&#39;username&#39;] ။ "!";
}
>

2 ။ XSS (Cross-site scripting တိုက်ခိုက်မှု)

XSS (Cross-site scripting scripting attaching) သည်အခြားသောလုံခြုံရေးအားနည်းချက်ဖြစ်သည်။ XSS ၏တိုက်ခိုက်မှုများကိုကာကွယ်ရန်ထိရောက်သောနည်းလမ်းမှာ HTML အထူးအက္ခရာများကိုအသုံးပြုသူထည့်သွင်းမှု၏ထူးခြားသောလက္ခဏာများမှလွတ်မြောက်ရန်ဖြစ်သည်။ ဤတွင်နမူနာကုဒ်ဖြစ်သည်။

<?php
// အသုံးပြုသူ input မှမှတ်ချက်အကြောင်းအရာကိုရယူပါ
$comment = $_POST['comment'];

// မှတ်ချက်ပေးသည့်အကြောင်းအရာများကိုပြုလုပ်သည် HTML အထူးဇာတ်ကောင်ထွက်ပေါက်
$escapedComment = htmlspecialchars($comment);

// မှတ်ချက်များကိုဒေတာဘေ့စ်သို့သိမ်းဆည်းပါ
$db-> Query ("Comments (Content) တန်ဖိုးများ (&#39;$ escapedcomment&#39;)" "" "ထဲသို့ထည့်ပါ။
>

3 ။ ဖိုင်တင်ခြင်းအားနည်းချက်

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

<?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, &#39;uploads /&#39;) သို့သိမ်းဆည်းပါ။
    ECHO "ဖိုင်တင်ခြင်းကိုအောင်မြင်စွာတင်လိုက်ပြီ";
}
>

နိဂုံးချုပ်အားဖြင့်

PHP လုံခြုံရေးသည် developer များအတွက်အလွန်အရေးကြီးသည်။ မှန်ကန်သောအမှားကိုင်တွယ်ခြင်းနှင့်ကာကွယ်စောင့်ရှောက်ရေးအစီအမံများမှတဆင့်ကျွန်ုပ်တို့သည်ဘုံလုံခြုံရေးအားနည်းချက်များကိုထိရောက်စွာလျှော့ချနိုင်သည်။ ဥပမာအားဖြင့် Proprocessed ထုတ်ပြန်ချက်များနှင့် parameter စည်းချက်များကိုအသုံးပြုခြင်းသည် SQL Injection ကိုအသုံးပြုခြင်းအားဖြင့် SQL Injection ကိုအသုံးပြုခြင်းအားဖြင့် HTML အထူးဇာတ်ကောင် Els သည် XSS တိုက်ခိုက်မှုများကိုကာကွယ်နိုင်ပြီးဖိုင်အမျိုးအစားနှင့်အရွယ်အစားကိုကန့်သတ်ထားသည်။ သတိပေးချက်တည်းခိုခြင်းနှင့်သင့်လျော်သောလုံခြုံရေးအစီအမံများကိုရယူခြင်းဖြင့်သာ application များနှင့်အသုံးပြုသူများ၏အချက်အလက်များကိုကျွန်ုပ်တို့ထိထိရောက်ရောက်ကာကွယ်နိုင်သည်။