လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> SOSSQLI :: Get_charset function ကို MySQLI :: Get_charset function မှတဆင့် encoding settings ကိုဘယ်လိုအတည်ပြုမလဲ။

SOSSQLI :: Get_charset function ကို MySQLI :: Get_charset function မှတဆင့် encoding settings ကိုဘယ်လိုအတည်ပြုမလဲ။

M66 2025-05-18

သိုလှောင်မှု XSS (Cross-site Cross-site scripting attaching) သည် Controser သည်အန္တရာယ်ရှိသော scripter ကိုသိုလှောင်ထားသည့်အန္တရာယ်ရှိသော script ကိုသိုလှောင်ထားပြီးအခြားအသုံးပြုသူများသည်အချက်အလက်များကို 0 င်ရောက်နိုင်သည့်အခါကွပ်မျက်ခံရနိုင်သည်။ ဤသို့သောတိုက်ခိုက်မှုနှင့်ပတ်သက်သောအဓိကပြ problem နာမှာအန္တရာယ်ရှိသော scripts ကိုဆာဗာဘက်တွင်သိမ်းဆည်းထားပြီးနောက်ပိုင်းတွင်အသုံးပြုသူအစည်းအဝေးသို့ခေါ်ဆိုခြင်းသို့မဟုတ်အခြားအန္တရာယ်ရှိသောစစ်ဆင်ရေးများကိုပြုလုပ်လေ့ရှိသည်။

ဒီတိုက်ခိုက်မှုကိုတားဆီးဖို့ဒေတာဘေ့စ်မှာရှိတဲ့ဇာတ်ကောင် encoding ကိုမှန်ကန်စွာလုပ်ဆောင်နိုင်ဖို့သေချာအောင်လုပ်ဖို့လိုတယ်။ MySQLI :: Get_charet ဆိုသည်မှာ Database connections ၏ encoding settings ကိုအတည်ပြုရန်ကူညီပေးသည့် PHP function ဖြစ်သည်။ encoding settings သည်မှန်ကန်ကြောင်းသေချာစေရန် XSS တိုက်ခိုက်မှုများကိုကာကွယ်ရန်ခြေလှမ်းတစ်ခုဖြစ်သည်။

MySQLI :: Get_charset ဆိုတာဘာလဲ။

MySQLI :: Get_charset Function သည် MySQLI တိုးချဲ့မှုစာကြည့်တိုက်၏အစိတ်အပိုင်းတစ်ခုဖြစ်ပြီးလက်ရှိဒေတာဘေ့စ်ဆက်သွယ်မှု၏ဇာတ်ကောင် encoding encoding encoding ကိုရရန်အသုံးပြုသည်။ Encoding Mymatch မှ Encoding Mismatch ကြောင့်အလားအလာရှိသော XSS အားနည်းချက်များအားဖြင့်ဇာတ်ကောင်အစုံမှန်ကန်စွာသတ်မှတ်ထားခြင်းဖြင့်ရှောင်ရှားနိုင်သည်။

သဒ္ဒါ:

 $charset = $mysqli->get_charset();

Return Value သည်လက်ရှိဆက်သွယ်မှုဖြင့်အသုံးပြုသောစာလုံးနှင့်ပတ်သက်သောသတင်းအချက်အလက်ပါ 0 င်သည့်အရာဝတ်ထုတစ်ခုဖြစ်သည်။

ဥပမာ -

 <?php
$mysqli = new mysqli("localhost", "username", "password", "database");

// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($mysqli->connect_error) {
    die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}

// လက်ရှိဒေတာဘေ့စ် connection ၏ဇာတ်ကောင်အစုံရယူပါ
$charset = $mysqli->get_charset();

// လက်ရှိဇာတ်ကောင် setting ကို output ကို output
echo "လက်ရှိဇာတ်ကောင်အစုံဖြစ်ပါတယ်: " . $charset->charset;
?>

ဇာတ်ကောင် encoding settings သည်အဘယ်ကြောင့်အရေးကြီးသနည်း။

encoding encoding settings သည်ဒေတာမှဒေတာများကိုဒေတာဘေ့စ်သို့မည်သို့လွှဲပြောင်းပေးရမည်ကိုဆုံးဖြတ်သည်။ ဒေတာဘေ့စ်မှအချက်အလက်များကိုဖြည့်စွက်သည်ကိုဆုံးဖြတ်သည်။ အကယ်. စာလုံးသည်မမှန်ကန်ပါက, အထူးသဖြင့်သိုလှောင်ထားသော XSS တိုက်ခိုက်မှုများအတွက်အထူးသဖြင့်မကိုက်ညီသော encoding ကြောင့်အန္တရာယ်ရှိသောကုဒ်ကိုမှားယွင်းစွာကွပ်မျက်ခံရနိုင်သည်။

မှန်ကန်သော encoding settings နှင့်အတူအသုံးပြုသူထည့်သွင်းမှုမှဒေတာဘေ့စ်သိုလှောင်မှုနှင့် output ကိုအသုံးပြုသူဘက်သို့အသုံးပြုသူဘက်သို့အရာရာကို executable scripts အဖြစ်သတ်မှတ်ခြင်းသို့မဟုတ်အဓိပ္ပာယ်ကောက်ယူခြင်းမပြုနိုင်ကြောင်းသေချာသည်။

သိုလှောင်မှု XSS တိုက်ခိုက်မှုများကိုမည်သို့ကာကွယ်ရမည်နည်း။

သိုလှောင်မှု XSS တိုက်ခိုက်မှုများကိုကာကွယ်ရန်အရေးကြီးဆုံးအဆင့်များမှာ -

  1. ဒေတာဘေ့စဆက်သွယ်မှုသည်မှန်ကန်သောဇာတ်ကောင်ကိုအသုံးပြုကြောင်းသေချာပါစေ။
    ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်သောအခါမှန်ကန်သောဇာတ်ကောင်သတ်မှတ်ချက်ကိုအသုံးပြုရန်အရေးကြီးသည်။ အကယ်. ဇာတ်ကောင်သည်မကိုက်ညီပါကအသုံးပြုသူထည့်သွင်းမှုသည်အမှားအယွင်းများရှိနိုင်သည်။ XSS အားနည်းချက်ဖြစ်စေနိုင်သည်။ လက်ရှိဇာတ်ကောင် settings ကို MySQLI :: Get_charset မှတဆင့်အတည်ပြုနိုင်သည်။

  2. အသုံးပြုသူထည့်သွင်းမှု၏သင့်လျော်သောစစ်ထုတ်ခြင်းနှင့်လွတ်မြောက်ခြင်းကိုလုပ်ဆောင်ပါ။
    မည်သည့်အကြောင်းအရာသုံးစွဲသူထည့်သွင်းမှုအမျိုးအစားမည်သို့ပင်ရှိပါစေသင့်လျော်သော filtering နှင့် Essule ကိုလုပ်ဆောင်သင့်သည်။ အထူးသဖြင့် HTML နှင့် JavaScript ကုဒ်အတွက်၎င်းတို့ကိုမသေစေပါနှင့်။ input မှလွတ်မြောက်ရန် HTMLSPECALCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARCHARTCHARCHARTCHARTCHARTCHARCHARCHARCHARCHARCHARCHARCHARTCHARTCHARCHARTCHARCHARTCHARTCHARCHARTCHARTCHARCHARTCHARTCHARCALCHARTCHARCHARTCHARTCHARTCHARCHARTCHARTS () သို့မဟုတ်) functions များကို PHP မှပေးသောလုပ်ဆောင်ချက်များ။

  3. http header ကိုပြင်ဆင်ခြင်း -
    ဆာဗာမှပြန်လာသောအကြောင်းအရာသည် စာသား / HTML ကဲ့သို့သောမှန်ကန်သော MIME အမျိုးအစားကိုအသုံးပြုသည်ကိုသေချာပါစေ။ ထို့အပြင် content-type ကိုလည်း utf-8 ကို utfrisser ကိုမှန်ကန်စွာခွဲခြားရန်သေချာစေရန်သတ်မှတ်ထားသင့်သည်။

  4. parameterized query ကိုသုံးပါ:
    SQL Injection ကိုကာကွယ်ခြင်းသည် XSS တိုက်ခိုက်မှုများကိုကာကွယ်ရန်နောက်ထပ်အရေးကြီးသောအတိုင်းအတာတစ်ခုဖြစ်သည်။ အန္တရာယ်ရှိသော SQL Code ကိုပြင်ဆင်ထားသည့်ထုတ်ပြန်ချက်များကို အသုံးပြု. အကောင်အထည်ဖော်ရန်တားဆီးနိုင်သည်။

  5. အချက်အလက်များကိုစစ်ဆေးပြီးရှင်းလင်းပါ။
    အသုံးပြုသူမှအချက်အလက်များကိုဒေတာဘေ့စ်သို့မသိမ်းဆည်းမီအတည်ပြုရန်နှင့်သန့်ရှင်းရေးပြုလုပ်ခြင်းသည်အကောင်းဆုံးဖြစ်သည်။ အသုံးပြုသူ input ကိုတရားဝင်သည်နှင့်အလားအလာအန္တရာယ်ရှိသောကုဒ်ကိုသန့်ရှင်းစင်ကြယ်ကြောင်းစစ်ဆေးပါ။

ဥပမာ - encoding settings ကို သေချာအောင်လုပ်ပါ

ဤတွင် encoding ကိုမှန်ကန်စွာတပ်ဆင်ခြင်းနှင့် XSS တိုက်ခိုက်မှုများကိုကာကွယ်ရန်မည်သို့သေချာအောင်လုပ်ရမည်ကိုပြသသည့်အပြည့်အဝဥပမာတစ်ခုရှိသည်။

 <?php
// ဒေတာဘေ့စ်ကိုဆက်သွယ်ပါ
$mysqli = new mysqli("localhost", "username", "password", "database");

// ဆက်သွယ်မှုအောင်မြင်မှုရှိမရှိစစ်ဆေးပါ
if ($mysqli->connect_error) {
    die("ဆက်သွယ်မှုမအောင်မြင်ပါ: " . $mysqli->connect_error);
}

// လက်ရှိဇာတ်ကောင် setting ကိုရယူပါ
$charset = $mysqli->get_charset();
echo "လက်ရှိဇာတ်ကောင်အစုံဖြစ်ပါတယ်: " . $charset->charset . "<br>";

// မှန်ကန်သောဇာတ်ကောင်ကိုသတ်မှတ်ပါ utf8mb4
if (!$mysqli->set_charset("utf8mb4")) {
    die("ဇာတ်ကောင် set ကိုသတ်မှတ်မရနိုင်ပါ: " . $mysqli->error);
}

// အသုံးပြုသူ input ကိုရယူပါ
$user_input = $_POST['user_input'];  // အသုံးပြုသူ input ကို passume ယူဆ POST ပေြာင်းလဲွှ

// အသုံးပြု htmlspecialchars() တားဆီး XSS
$safe_input = htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8');

// လုံခြုံသောသွင်းအားစုများကိုဒေတာဘေ့စ်သို့သိမ်းထားပါ
$stmt = $mysqli->prepare("INSERT INTO users (user_input) VALUES (?)");
$stmt->bind_param("s", $safe_input);
$stmt->execute();

// ဆက်သွယ်မှုကိုပိတ်ပါ
$stmt->close();
$mysqli->close();
?>

ဒီဥပမာမှာ Get_charet () that_charet ("UTF8MB4" မှတဆင့်သိမ်းဆည်းထားပြီး utf-8 encoding ကို set_charet ("utf8mb4") ကိုသိုလှောင်ဖို့အတွက်လက်ရှိဇာတ်ကောင် settings ကိုအရင်ဆုံးအတည်ပြုပြီး။ ဤအတောအတွင်းအသုံးပြုသူ input ကိုထုတ်ယူသောအခါ XSS တိုက်ခိုက်မှုများကိုကာကွယ်ရန် HTMLSPECALCHARCHAR ကို အသုံးပြုသည်။

အကျဉ်းချုပ်

MySQLI :: Get_ChariSet Settings ကို အသုံးပြု. database connection ၏ settings ကိုအတည်ပြုရန်နှင့်မှန်ကန်သော encoding ကိုသေချာစွာစစ်ဆေးရန်အတွက် Get_charet Settings ကို အသုံးပြု. Cense Encoding ကိုသေချာစေရန်အတွက်ကျွန်ုပ်တို့သည်သိုလှောင်မှု XSS တိုက်ခိုက်မှုများကိုထိရောက်စွာတားဆီးနိုင်သည်။ တစ်ချိန်တည်းမှာပင်သင့်လျော်သောသွင်းအားဖြည့်ခြင်းစစ်ဆေးခြင်း,

  • သက်ဆိုင်သောတက်(ဂ်)များ:

    mysqli