အသုံးပြုသူထည့်သွင်းမှုအပြောင်းအလဲအတွက်အထူးသဖြင့်တရုတ်, ဂျပန်နှင့်ကိုးရီးယားစသည့်ဇာတ်ကောင်များပါ 0 င်သည့်ဘာသာစကားများ (ဥပမာအားဖြင့်တရုတ်, ဂျပန်နှင့်ကိုးရီးယား) တို့ပါ 0 င်သည့်ဘာသာစကားများ, ဤပြ problem နာကိုဖြေရှင်းရန် PHP သည် Multi-byte-completated function mb_eregi_replace ကို ထောက်ပံ့ပေးနိုင်သည်။
MB_eregi_replace သည်ပုံမှန်အသုံးအနှုန်းများနှင့်ကိုက်ညီသောအလွှာများကိုရှာဖွေခြင်းနှင့်သတ်မှတ်ထားသောအကြောင်းအရာများနှင့်အစားထိုးရန်ကိစ္စမရှိသည့် တိုးချဲ့ပညာ တိုးချဲ့မှုတွင်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည့်လုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ၎င်း၏ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
string mb_eregi_replace(string $pattern, string $replacement, string $string [, string $option])
$ ပုံစံ - ပုံမှန်စကားရပ်ပုံစံ။
$ အစားထိုး : ပွဲကိုအစားထိုးရန်အသုံးပြုသော string ကို။
$ string : လုပ်ငန်းများ၌ခံရဖို့မူရင်း string ကို။
$ option ကို : optional ကိုဇာတ်ကောင် encoding ။
application တစ်ခုတွင်အသုံးပြုသူမှ @, #, $,%, ^, စသည်တို့ကဲ့သို့သောအထူးအက္ခရာများပါ 0 င်နိုင်သည်။ ဤစာလုံးများကိုရှင်းလင်းရန် MB_ereGi_rereplace မှတဆင့် function ကိုကျွန်ုပ်တို့ရေးနိုင်သည်။
function sanitize_input($input) {
// ပုံမှန်အသုံးအနှုန်းများ:အက္ခရာများကိုသိမ်းထားပါ、ဂဏန်း、နေရာများနှင့်တရုတ်,ကြွင်းသောအရာကိုအချည်းနှီးဖြင့်အစားထိုးပါ
$pattern = '[^a-zA-Z0-9\x{4e00}-\x{9fa5}\s]';
$replacement = '';
return mb_eregi_replace($pattern, $replacement, $input, 'UTF-8');
}
// စမ်းသပ်နမူနာ
$user_input = "အလည်အပတ်ခရီးမှလှိုက်လှဲစွာကြိုဆိုပါသည် m66.net!ဒါ@#စမ်းသပ်မှု$%ဝင်ရောက်^&ကေြနပ်သော。";
$clean_input = sanitize_input($user_input);
echo $clean_input;
အလည်အပတ်ခရီးမှလှိုက်လှဲစွာကြိုဆိုပါသည် m66netဒါစမ်းသပ်မှုဝင်ရောက်ကေြနပ်သော
ဤဥပမာတွင်တရုတ်နှင့်အင်္ဂလိပ်အက္ခရာများမဟုတ်ဘဲအင်္ဂလိပ်အက္ခရာများမဟုတ်သည့်စာလုံးများကိုအစားထိုးရန် Unicode နှင့်သဟဇာတဖြစ်သောပုံမှန်စကားရပ်ကိုအသုံးပြုသည် ။ ITF-8 ' encoding specoding နှင့် တွဲဖက်. Conn} 4e00}: \ x {9fa5 {9fa5} တွင်အသုံးပြုရကျိုးနပ်သည်။
စွမ်းဆောင်ရည်ဆိုင်ရာပြ issues နာများ - MB_ereGi_replace သည်စာမတတ်နိုင်သော mbstring extension ကို အခြေခံ. ပုံမှန်လုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ Multibyte ဇာတ်ကောင်အထောက်အပံ့လိုအပ်သည့်အခါသာ၎င်းကိုအသုံးပြုရန်အကြံပြုသည်။
ဇာတ်ကောင် encoding ရှင်းရှင်းလင်းလင်းဖြစ်ရပါမည် ။
ပုံမှန်အသုံးအနှုန်းမှလွတ်မြောက်ရန်ပြ problem နာ - ရှုပ်ထွေးသောပုံစံများကိုတည်ဆောက်ရာတွင်ပုံမှန် syntax အမှားများကိုရှောင်ရှားရန်အထူးသင်္ကေတများကိုလွတ်မြောက်ရန်သေချာစေပါ။
အကယ်. သင်သည် form processor ကိုတည်ဆောက်နေပါကအသုံးပြုသူအမည်, Commonse Commission စသည်တို့ကို filter လုပ်ရန်လိုအပ်ပါက MB_eregi_replain ကို သုံးပါ။ ဥပမာအားဖြင့်, အသုံးပြုသူမှတ်ပုံတင်ပုံစံတွင်အောက်ပါနည်းလမ်းကို အသုံးပြု. ဆာဗာပေါ်ရှိအသုံးပြုသူအမည်ပြောင်ကိုသန့်ရှင်းရေးပြုလုပ်နိုင်သည်။
$nickname = sanitize_input($_POST['nickname']);
ဤနည်းအားဖြင့် XSS တိုက်ခိုက်မှုများနှင့်တရားမ 0 င်အက္ခရာများကိုထိုးသွင်းခြင်းကဲ့သို့သောလုံခြုံရေးဆိုင်ရာပြ issues နာများကိုထိရောက်စွာရှောင်ရှားနိုင်ပြီးသုံးစွဲသူထည့်သွင်းမှုစံနှုန်းကိုလည်းတိုးတက်စေနိုင်သည်။
အသုံးပြုသူ input ကိုပြုပြင်သည့်အခါလုံခြုံရေးနှင့်လိုက်ဖက်မှုသည်ထိပ်တန်း ဦး စားပေးဖြစ်သည်။ MB_ereGi_replace သည် input မှအထူးအက္ခရာများကိုရှင်းလင်းရန်အစွမ်းထက်။ လုံခြုံသောနည်းလမ်းဖြစ်သည်။ PHP 8.0 ( MB_ereg_replace အကြံပြုသည်) ဤလုပ်ဆောင်မှုကိုလျှော့ချခဲ့သော်လည်း PHP ၏ဗားရှင်းအဟောင်းများကိုအသုံးပြုနေသောစီမံကိန်းများတွင်ယုံကြည်စိတ်ချရသောရွေးချယ်မှုတစ်ခုဖြစ်နေဆဲပင်။ ပြုပြင်ထိန်းသိမ်းမှုကိုစဉ်ဆက်မပြတ်အဆင့်မြှင့်တင်ရန်လိုအပ်သောစီမံကိန်းများအတွက်ပိုမိုကောင်းမွန်သောစွမ်းဆောင်ရည်နှင့်လိုက်ဖက်ညီမှုအတွက်ပိုမိုခေတ်မီသောအခြားရွေးချယ်စရာသို့ပြောင်းရွှေ့ရန်အကြံပြုပါသည်။