PHP ပရိုဂရမ်တွင် Preg_replace_callback_array သည်သင့်အား calnback function ကို string တစ်ခုတွင်ပုံစံမျိုးစုံအစားထိုးရန်ခွင့်ပြုသည့်အလွန်အစွမ်းထက်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ စာသားပုံစံများကိုအစားထိုးရန်လိုအပ်သည့်အခါ Preg_replace_callback_array ကို အသုံးပြုခြင်းသည် code ကိုရိုးရှင်းရုံသာမကကုဒ်၏ဖတ်နိုင်မှုကိုလည်းတိုးတက်စေနိုင်သည်။ သို့သော်ပြင်ပ input နှင့် output နှင့် output များပါ 0 င်သည့်လုပ်ငန်းများအားလုံးကဲ့သို့ပင် Preg_replace_callback_array တွင် လုံခြုံရေးအန္တရာယ်များလည်းရှိနိုင်သည်။
XSS တိုက်ခိုက်မှုများကိုရှောင်ရှားရန်ကျွန်ုပ်တို့သည်များသောအားဖြင့် output ကိုစနစ်တကျစစ်ထုတ်ရန်လိုအပ်သည်။ ဒီဆောင်းပါးမှာ Htmlspecialchars နဲ့ Preg_replace_callestion_callback_callback_Callback_Array ကိုဘယ်လိုပေါင်းစပ်ရမလဲဆိုတာကိုလေ့လာမယ်။
Preg_replace_callback_array သည် Associative Array ကိုအငြင်းပွားမှုများအဖြစ်လက်ခံသည့် function တစ်ခုဖြစ်သည်။ Array ၏သော့များသည်ပုံမှန်အသုံးအနှုန်းပုံစံများဖြစ်ပြီးတန်ဖိုးများသည်သက်ဆိုင်ရာ callback function များဖြစ်သည်။ ၎င်းသည်ကိုက်ညီသော callback function ကိုကိုက်ညီမှုပုံစံတစ်ခုစီအတွက်လုပ်ဆောင်မှုကိုခေါ်ဆိုခြင်းနှင့်နောက်ဆုံးတွင်အစားထိုး string ကိုပြန်ပို့ပါလိမ့်မည်။
ဤတွင်အသုံးပြုမှု၏ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
$pattern = [
'/hello/' => function ($matches) {
return 'Hi';
},
'/world/' => function ($matches) {
return 'PHP';
}
];
$string = "hello world";
$result = preg_replace_callback_array($pattern, $string);
echo $result; // ထုတ်လုပ်ခြင်း: Hi PHP
ဤကုဒ်သည် PHP နှင့်အတူ မင်္ဂလာပါ နှင့် ကမ္ဘာကြီး နှင့်အတူ မင်္ဂလာပါ ။
အသုံးပြုသူထံမှထုတ်ပေးသည့်အခါအချက်အလက်သည်ထုတ်လုပ်မှုကိုအထူးဂရုပြုရမည်။ အသုံးပြုသူမှထည့်သွင်းထားသောအကြောင်းအရာကိုဝက်ဘ်စာမျက်နှာသို့တိုက်ရိုက်ထည့်သွင်းပါက XSS (site Cross-site scripting) တိုက်ခိုက်မှုများကို ဦး တည်သွားစေနိုင်သည်။ ဥပမာအားဖြင့်အသုံးပြုသူထည့်သွင်းမှုသည် HTML tags များသို့မဟုတ် javascript ကုဒ်ပါ 0 င်ပါက၎င်းတို့ကို browser မှကွပ်မျက်ခံရနိုင်ပြီးအသုံးပြုသူ၏လုံခြုံရေးကိုခြိမ်းခြောက်နိုင်သည်။
Preg_replace_callback_Array ကို အစားထိုးခြင်းအတွက် string ကိုအစားထိုးရန်အတွက်ပင်အစားထိုးခြင်းရလဒ်ကိုပြုပြင်သည့်အခါ output ကိုပြန်လည်မလွတ်မြောက်လျှင်,
HTMLSPECialCHARS သည် PHP တွင်စာလုံးများကို HTML အဖွဲ့အစည်းများသို့ပြောင်းလဲစေသည့် PHP တွင်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ ဥပမာအားဖြင့် < to & lt ပြောင်းလဲခြင်း, , > to & GT ပြောင်းလဲခြင်း, HTML tags များကိုခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ကွပ်မျက်ခံရခြင်းမှကာကွယ်နိုင်ခြင်းမှကာကွယ်ရန် XSS တိုက်ခိုက်မှုများကိုရှောင်ရှားနိုင်သည်။
အစားထိုးစာသားသည် callback_callback_array တွင် htmlspecialcharchars များကို ဖုန်းခေါ်ဆိုခြင်းဖြင့်ဝက်ဘ်စာမျက်နှာကိုလုံခြုံစွာထုတ်ဖော်ပြောဆိုနိုင်ကြောင်းသေချာစေနိုင်သည်။
// နှင့်အတူတစ် ဦး defineHTMLtag string ကို
$string = "Hello <script>alert('Hacked!');</script> World";
// အသုံးပြု preg_replace_callback_array အထိခိုက်မခံသောအကြောင်းအရာအားလုံးကိုအစားထိုးပါ
$patterns = [
'/<script.*?>(.*?)<\/script>/i' => function($matches) {
// 替换并အသုံးပြု htmlspecialchars ရလဒ်မှလွတ်မြောက်ရန်
return htmlspecialchars($matches[0], ENT_QUOTES, 'UTF-8');
},
'/world/i' => function($matches) {
return 'PHP';
}
];
$result = preg_replace_callback_array($patterns, $string);
echo $result; // ထုတ်လုပ်ခြင်း: Hello <script>alert('Hacked!');</script> PHP
ဤဥပမာတွင်ကျွန်ုပ်တို့သည် <script> tag အကြောင်းအရာများကိုပုံမှန်အသုံးအနှုန်းများဖြင့်ကြည့်ရှု။ အစားထိုးပြီးအကြောင်းအရာကိုမကွပ်မျက်ရန်သေချာစေရန် htmlspecialcharchars များကို အသုံးပြုသည်။ ရလဒ်အနေဖြင့်မူရင်း script ကို HTML entity သို့ HTML entity သို့ထွက်ပြေးလွတ်မြောက်သွားပြီဖြစ်သည်။
အချို့သော application ဇာတ်လမ်းတစ်ပုဒ်တွင်ကျွန်ုပ်တို့သည် URL ကို Preg_replace_callback_array ထဲရှိ URL ကိုလုပ်ဆောင်ရန်လိုအပ်နိုင်သည်။ အန္တရာယ်ရှိတဲ့ထိုးဆေးကိုရှောင်ရှားရန်ကျွန်ုပ်တို့သည် htmlspecialchars သုံး. URL မှလွတ်မြောက်နိုင်သည်။
သင့်တွင်အောက်ပါကုဒ်ရှိသည်ဆိုပါစို့:
$string = "Visit our website at http://example.com for more info.";
$patterns = [
'/http:\/\/example.com/' => function($matches) {
// သေတမ်းစာ URL ထွက်ပေြးခြင်း,ဒိုမိန်းအမည်အသစ်နှင့်အစားထိုးပါ
$safe_url = htmlspecialchars(str_replace('example.com', 'm66.net', $matches[0]), ENT_QUOTES, 'UTF-8');
return $safe_url;
}
];
$result = preg_replace_callback_array($patterns, $string);
echo $result; // ထုတ်လုပ်ခြင်း: Visit our website at http://m66.net for more info.
ဤနေရာတွင် http://example.com ကို http://m66.net ဖြင့်အစားထိုး။ htmlspecialchars မှတစ်ဆင့် URL ကိုထွက်ပြေးပါ။ ဤနည်းအားဖြင့်အသုံးပြုသူမှထည့်သွင်းထားသော URL တွင်အန္တရာယ်ရှိသောဇာတ်ကောင်များပါ 0 င်သည့်တိုင်နောက်ဆုံး output url ကိုဝက်ဘ်စာမျက်နှာပေါ်တွင်အန္တရာယ်ကင်းစွာပြလိမ့်မည်။
Preg_replace_callback_array သည်အသုတ်ကြိုးများကိုပုံစံအမျိုးမျိုးဖြင့်အစားထိုးခွင့်ပြုသည့်အစွမ်းထက်သော function တစ်ခုဖြစ်သည်။ အသုံးပြုသူများထံမှ input နှင့် တွဲဖက်. htmlspecialchars များကို အသုံးပြုခြင်းသည်အထူးသဖြင့် HTML အကြောင်းအရာများသို့မဟုတ် URLs များကိုပြုပြင်သည့်အခါ output ၏လုံခြုံရေးကိုသိသိသာသာတိုးတက်စေနိုင်သည်။
အထက်ပါဥပမာမှတစ်ဆင့် XSS တိုက်ခိုက်မှုများကိုမည်သို့ရှောင်ရှားနိုင်ကြောင်းနှင့် Preg_replace_callback_array နှင့် htmlspecialchars များကို ပေါင်းစပ်ခြင်းဖြင့်ပရိုဂရမ်၏လုံခြုံရေးကိုမည်သို့သေချာစေနိုင်ကြောင်းပြသသည်။ PHP တွင် String အစားထိုးလုပ်ငန်းများကိုပိုမိုလုံခြုံစွာမည်သို့လုပ်ဆောင်ရမည်ကိုနားလည်ရန်မျှော်လင့်ပါသည်။