မျက်မှောက်ခေတ်ကွန်ယက်ဝန်းကျင်တွင် Cross-site scripting တိုက်ခိုက်မှုများ (XSS) သည်အသုံးအများဆုံးနှင့်အန္တရာယ်ရှိသောကွန်ယက်လုံခြုံရေးအားနည်းချက်များဖြစ်လာသည်။ XSS သည်အသုံးပြုသူ၏ထည့်သွင်းမှုအချက်အလက်များကိုမလျော်ကန်သောအချက်အလက်များကိုမလျော်ကန်စွာလုပ်ဆောင်ရန်ဝက်ဘ်ဆိုက်များကိုအမြတ်ထုတ်သည်။ ဤဆောင်းပါးသည် PHP ဒေတာစီစစ်ခြင်းနည်းပညာဖြင့် XSS တိုက်ခိုက်မှုများကိုမည်သို့တားဆီးရမည်ကိုမိတ်ဆက်ပေးပြီးတိကျသောဥပမာကုဒ်ကိုဖော်ပြရန်ဖြစ်သည်။
XSS တိုက်ခိုက်မှုများကိုမတားဆီးမီ XSS တိုက်ခိုက်မှုများ၏အခြေခံမူများကိုကျွန်ုပ်တို့ ဦး စွာနားလည်ရန်လိုအပ်သည်။ XSS တိုက်ခိုက်မှုများကိုအဓိကအားဖြင့်အမျိုးအစားသုံးမျိုးခွဲခြားထားသည်။ XSS, သိုလှောင်မှု XSS နှင့် Dom Xss တို့ဖြစ်သည်။ သူတို့ထဲတွင်ရောင်ပြန်ဟပ်ခြင်းနှင့်သိုလှောင်မှု XSS တိုက်ခိုက်မှုများသည်အသုံးအများဆုံးဖြစ်သည်။ တိုက်ခိုက်သူသည်တိုက်ခိုက်မှု၏ရည်ရွယ်ချက်ကိုအသုံးပြုသူမှထည့်သွင်းထားသောအချက်အလက်များထဲသို့အန္တရာယ်ရှိသော scripts များထည့်သွင်းခြင်းဖြင့်ရရှိနိုင်ပါသည်။ အသုံးပြုသူမှ 0 က်ဘ်စာမျက်နှာကိုအသုံးပြုသောအခါအန္တရာယ်ရှိသော scripts ကိုကွပ်မျက်လိမ့်မည်။
PHP တွင် htmlspecialchars function ကိုမကြာခဏ filtering အတွက်အသုံးပြုသည်။ ၎င်းသည်အထူးအက္ခရာများကို HTML အဖွဲ့အစည်းများသို့ထွက်ပြေးလွတ်မြောက်သည်။ ဤတွင်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
$userInput = $_GET['input'];
$filteredOutput = htmlspecialchars($userInput);
echo $filteredOutput;
ဤဥပမာတွင် $ _GET ['input') သည် URL Parameter မှအသုံးပြုသူ input ကိုရယူခြင်းကိုဆိုလိုသည်။ htmlspecialchars function သည် script ကိုကွပ်မျက်ခြင်းမှကာကွယ်ရန်အထူးအက္ခရာများမှလွတ်မြောက်စေသည်။
သိုလှောင်မှု XSS တိုက်ခိုက်မှုများအတွက်တိုက်ခိုက်သူသည်ဒေတာဘေ့စ်မှအချက်အလက်များကိုဖတ်ရှုပြီးအချက်အလက်များကိုဖတ်ရှုသောအခါအန္တရာယ်ရှိသောကုဒ်ကိုသိမ်းဆည်းထားလိမ့်မည်။ ဤအရာကိုကာကွယ်ရန် Database Query ကို MySQLI သို့မဟုတ် PDO သို့မဟုတ် PDO သို့မဟုတ် PDO ၏ထုတ်ပြန်ချက်များကို အသုံးပြု. စစ်ထုတ်သင့်သည်။
MySQLI ကိုအသုံးပြုပြီး prementomported ထုတ်ပြန်ချက်များအတွက်နမူနာကုဒ်ဖြစ်သည်။
$conn = new mysqli($servername, $username, $password, $dbname);
$stmt = $conn->prepare("SELECT username FROM users WHERE id = ?");
$stmt->bind_param("i", $userId);
$stmt->execute();
$stmt->bind_result($username);
while ($stmt->fetch()) {
echo htmlspecialchars($username);
}
$stmt->close();
$conn->close();
ဤဥပမာတွင် MySQLI ၏ precomportedededed ကိုအသုံးပြုထားပြီးအသုံးပြုသူမှ $ userID function ကို bind_result function မှတဆင့်ခညျြ နှော ငျထားပါတယ်။ XSS တိုက်ခိုက်မှုများကိုကာကွယ်ရန် htmlspecialchars function မှတဆင့်ရရှိသည်။
အသုံးပြုသူ input အချက်အလက်များကို filter လုပ်ရန်အသုံးပြုသော filter_var function ကို PHP သည် filter_var function ကိုပေးသည်။ ကွဲပြားသော input အမျိုးအစားများကို filter_sanitize_string ကဲ့သို့သောကြိုတင်သတ်မှတ်ထားသော filter များဖြင့် တွဲဖက်. filtered လုပ်နိုင်သည်။
filter_var function ကိုအသုံးပြုပြီး input ကို filter လုပ်ရန်ဥပမာ code တစ်ခုရှိသည်။
$userInput = $_POST['input'];
$filteredInput = filter_var($userInput, FILTER_SANITIZE_STRING);
echo $filteredInput;
ဤဥပမာတွင် filter_var function သည် filter_sanitize_string filter မှ filter_var function ကို filter လုပ်ခြင်း, မလုံခြုံသောစာလုံးများနှင့် HTML tags များကိုဖယ်ရှားခြင်း,
0 က်ဘ်ဆိုက်၏လုံခြုံရေးကိုတိုးတက်စေရန်နှင့်ကွင်းလယ်ဆိုင်ရာ scripting တိုက်ခိုက်မှုများ (XSS) ကိုကာကွယ်ရန် (XSS) ကိုတားဆီးရန် developer များကအသုံးပြုသူများမှထည့်သွင်းထားသောအချက်အလက်များကိုစနစ်တကျ filter လုပ်ပြီးလုပ်ဆောင်ရမည်။ ဒေတာဘူတာ (သို့) PDOSTAST Functions ကို filter လုပ်ရန် MySQLI သို့မဟုတ် POSTORED ထုတ်ပြန်ချက်များအတွက် htmlspecialchars function ကိုအသုံးပြုရန်ဤဆောင်းပါးသည် Mysqlsqli သို့မဟုတ် PODONED ထုတ်ပြန်ချက်များကို filter_var function ကိုသုံးပြီး filter_var function ကိုအသုံးပြုသည်။ ဤအကာအကွယ်ပေးမှုအစီအမံများမှတဆင့် XSS တိုက်ခိုက်မှုများကိုထိရောက်စွာလျှော့ချနိုင်ပြီးဝက်ဘ်ဆိုက်လုံခြုံရေးကိုသေချာစေနိုင်သည်။