ဆောင်းပါးလမ်းညွှန်
လုံးဝပိတ်ရန် WordPress front-end မှာ native search function ပါရှိတာကြောင့် database ကို scan ဖတ်ပြီး ရှုပ်ပွမသွားအောင် ကာကွယ်ပေးပါတယ်။
ဒေတာဘေ့စ် ပျက်စီးနေတာက သင့်ဝက်ဘ်ဆိုက်မှာ အကြောင်းအရာတွေ အရမ်းများနေလို့ မဟုတ်ပါဘူး၊ ရယ်စရာကောင်းလောက်အောင် ထိရောက်မှုမရှိတဲ့ native WordPress ရှာဖွေမှုကို သင်သုံးနေတုန်းပါပဲ။
ဝဘ်ဆိုက်ပိုင်ရှင်အများစုဟာ အချက်တစ်ခုကို လျစ်လျူရှုထားကြပါတယ်။ အဲဒါကတော့ front-end... ?s= ရှာဖွေမှု ကန့်သတ်ချက်များသည် ဟက်ကာများနှင့် စကင်နာများ၏ အနှစ်သက်ဆုံး တစ်ခုဖြစ်သည်။
တစ်စုံတစ်ယောက်က search interface ကို request တွေ ဆက်တိုက်လုပ်နေမယ်ဆိုရင် သင့်ရဲ့ database ဟာ အဓိပ္ပါယ်မရှိတဲ့ query ထောင်ပေါင်းများစွာကို execute လုပ်ရပါလိမ့်မယ်။
ရလဒ်က CPU အသုံးပြုမှု မြင့်တက်လာပြီး မန်မိုရီအသုံးပြုမှု မြင့်တက်လာကာ ဝက်ဘ်ဆိုက် ပျက်သွားပါတယ်။
ဒါက ချဲ့ကားပြောတာ မဟုတ်ပါဘူး၊ မရေမတွက်နိုင်တဲ့ နေရာတွေရဲ့ တကယ့်နာကျင်စရာ အတွေ့အကြုံတစ်ခုပါ။
WordPress native search ကို ဘာကြောင့် disable လုပ်ရမှာလဲ။
WordPress ရဲ့ built-in search function က အခြေခံအားဖြင့် database ထဲက full-text LIKE query တစ်ခုပါ။
ဤရှာဖွေမှုသည် အထူးသဖြင့် ဆောင်းပါးအရေအတွက် ၁၀,၀၀၀ ထက်ကျော်လွန်သည့်အခါ အလွန်ထိရောက်မှုမရှိပါ။ ရှာဖွေမှုတစ်ကြိမ်သည် ၀.၅ စက္ကန့်ထက်ပို၍ ကြာနိုင်သည်။
တစ်စုံတစ်ယောက်သည် web crawler သို့မဟုတ် attack script ကို အသုံးပြု၍ တစ်စက္ကန့်လျှင် search request များစွာပေးပို့ပါက သင့် database သည် ချက်ချင်းပင် overwhelm ဖြစ်သွားပါလိမ့်မည်။
တရားဝင် WordPress စာရွက်စာတမ်းအရ native search တွင် အကာအကွယ်ယန္တရားများမရှိဘဲ front end သို့ အပြည့်အဝထိတွေ့ထားသည်။ ဆိုလိုသည်မှာ attacker များသည် login ဝင်စရာမလိုဘဲ ဤ entry point ကို အသုံးချနိုင်သည်။

အခြားဖြေရှင်းချက်- ပိုမိုစမတ်ကျသော ရှာဖွေရေးအင်ဂျင်သို့ ချိတ်ဆက်ပါ
ပရော်ဖက်ရှင်နယ် ဝဘ်ဆိုက်အများစုဟာ WordPress ရဲ့ မူရင်းရှာဖွေမှုကို မှီခိုအားထားတော့မှာ မဟုတ်ပါဘူး။
ဥပမာအားဖြင့်၊ ဝင်ရောက်ခွင့် Google ပရိုဂရမ်းမင်း ရှာဖွေမှု ဒါမှမဟုတ် Algolia ထိုကဲ့သို့သော ပြင်ပရှာဖွေရေးဝန်ဆောင်မှုများသည် မြန်ဆန်ရုံသာမက ပိုမိုတိကျသောရလဒ်များကိုလည်း ပေးစွမ်းနိုင်ပါသည်။
ပိုအရေးကြီးတာက ဒီဝန်ဆောင်မှုတွေက သင့်ရဲ့ဒေတာဘေ့စ်ကို ပျက်စီးစေမှာမဟုတ်ပါဘူး၊ ဘာလို့လဲဆိုတော့ query အားလုံးကို ပြင်ပကနေ လုပ်ဆောင်ပေးလို့ပါ။
ဒါဆိုရင် သင့်ရဲ့ ဝက်ဘ်ဆိုက်မှာတည်နေရာကိရိယာဆိုက်တစ်ခု၊ ဘလော့ဂ်ဆိုက်တစ်ခု သို့မဟုတ် ပြင်ပရှာဖွေမှုကို အားကိုးနေရသော ဆိုက်တစ်ခုပင်ဖြစ်ပါက WordPress ၏ built-in ရှာဖွေရေးလုပ်ဆောင်ချက်ကို ဆက်လက်ထိန်းသိမ်းထားရန် အကြောင်းမရှိပါ။
WordPress ရှေ့ပိုင်းရှာဖွေရေးကုဒ်အကောင်အထည်ဖော်မှုကို လုံးဝပိတ်ပါ
အတိုက်ရိုက်ဆုံးနည်းလမ်းမှာ အကြောင်းအရာကို အာရုံစိုက်ခြင်းဖြစ်သည်။ functions.php ဖိုင်ထဲသို့ အောက်ပါကုဒ်ကို ထည့်ပါ-
// 禁用 WordPress 前台搜索功能,防止被扫描拖垮数据库
function disable_wp_search( $query, $error = true ) {
if ( is_search() && !is_admin() ) {
$query->is_search = false;
$query->query_vars['s'] = false;
$query->query['s'] = false;
if ( $error == true ) {
// 直接返回 404 页面,不走任何数据库查询
$query->set_404();
status_header( 404 );
nocache_headers();
}
}
}
add_action( 'parse_query', 'disable_wp_search' );
add_filter( 'get_search_form', '__return_empty_string' );
ဒီကုဒ်ရဲ့ယုတ္တိဗေဒက အရမ်းရိုးရှင်းပါတယ်-
- ရှေ့မျက်နှာစာ ရှာဖွေမှု တောင်းဆိုချက်ကို တွေ့ရှိသည်နှင့် ဒေတာဘေ့စ် မေးမြန်းချက်များကို ချက်ချင်း ပိတ်ဆို့ပါသည်။
- 404 စာမျက်နှာသို့ ပြန်သွားခြင်းသည် ဝင်ရောက်သည့်နေရာကို လုံးဝပိတ်ဆို့ထားသည်။
- တစ်ချိန်တည်းမှာပင်၊ အသုံးပြုသူ မတော်တဆ လုပ်ဆောင်ချက်များကို ကာကွယ်ရန်အတွက် ရှာဖွေရေးပုံစံကို ဖယ်ရှားခဲ့သည်။
ဒီနည်းလမ်းရဲ့ အားသာချက်ကတော့ တိုက်ခိုက်သူတစ်ယောက်က request တွေ အများကြီးလုပ်ရင်တောင်... ?s=xxx၎င်းသည် ဒေတာဘေ့စ်မေးမြန်းမှုများကို မဖြစ်ပေါ်စေပါ။
ပိုမိုကြော့ရှင်းသော အကောင်အထည်ဖော်မှု- Fluent Snippets ကိုအသုံးပြုခြင်း
theme ဖိုင်တွေကို တိုက်ရိုက်ပြင်ဆင်ချင်တာမဟုတ်ရင် သုံးနိုင်ပါတယ်... ကျွမ်းကျင်သော အပိုင်းအစများ ပလပ်အင်။
ဒီ plugin က background မှာ code snippet တွေကို တိုက်ရိုက်ထည့်နိုင်စေပြီး effect တွေနဲ့ ပြုပြင်မွမ်းမံမှုတွေကို မြင်တွေ့နိုင်စေပါတယ်။ functions.php အတူတူပါပဲ၊ ဒါပေမယ့် ပိုလုံခြုံပါတယ်။
တစ်ကြိမ်ဖွင့်ထားရင် theme update တွေက overwrite ဖြစ်မှာကို စိတ်ပူစရာမလိုဘဲ custom code အားလုံးကို အလွယ်တကူ စီမံခန့်ခွဲနိုင်ပါတယ်။
တကယ့်စမ်းသပ်မှုရလဒ်များ- ဒေတာဘေ့စ်ဖိအား သိသိသာသာကျဆင်းသွားသည်။
ဖွဲ့စည်းပုံတစ်ခုမှာ 2-core CPU + 4GB RAM VPS မှာ native search က တစ်စက္ကန့်ကို request ၅၀ လုပ်တဲ့အခါ database CPU utilization က ၉၅% အထိ မြင့်တက်လာပါတယ်။
ရှာဖွေမှုကို ပိတ်ပြီးနောက်၊ တူညီသော request သည် 404 error ကို တိုက်ရိုက်ပြန်ပေးခဲ့ပြီး database load သည် သုညနီးပါးဖြစ်သွားသည်။
ဒါကြောင့် လုံခြုံရေးကျွမ်းကျင်သူအများစုက WordPress ရဲ့ native search ကို မလိုအပ်ရင် ချက်ချင်းပိတ်ဖို့ အထူးအကြံပြုထားပါတယ်။
လုံခြုံရေးသုတေသီများက Sucuri ၏တရားဝင်ဘလော့ဂ်တွင် ရှင်းလင်းစွာဖော်ပြထားသည်-
"WordPress native search ဟာ exploit လုပ်ရအလွယ်ကူဆုံး entry point တွေထဲက တစ်ခုပါ။ attacker တွေဟာ search request တွေ မကြာခဏလုပ်ခြင်းအားဖြင့် denial-of-service attack တွေကို ဖန်တီးနိုင်ပါတယ်။"
ဒီဖော်ပြချက်ဟာ ပြဿနာကို ရှင်းပြဖို့ လုံလောက်ပါတယ်။
အဆုံးသတ်အနေနဲ့- ဘေးကင်းရေးဟာ ရွေးချယ်စရာတစ်ခု မဟုတ်ဘဲ မဖြစ်မနေ လုပ်ရမယ့် သင်တန်းတစ်ခုပါ။
ဝဘ်ဆိုက်လုံခြုံရေးသည် အပိုဆုကြေးတစ်ခုမျှသာမဟုတ်ဘဲ၊ အသက်နှင့်သေခြင်းကိစ္စတစ်ခုဖြစ်သည်။
WordPress ရဲ့ native search ကို disable လုပ်တာက သေးငယ်တဲ့ လုပ်ဆောင်ချက်လို့ ထင်ရပေမယ့် သင့်ရဲ့ database ကို အလွန်အကျွံ မသုံးမိအောင် ကာကွယ်ပေးနိုင်ပါတယ်။
သတင်းအချက်အလက်များ အလွန်အကျွံ များပြားလာသည့် ဤခေတ်တွင် စစ်မှန်သော ဉာဏ်ပညာသည် အင်္ဂါရပ်များကို ထည့်သွင်းခြင်းတွင် မဟုတ်ဘဲ၊ ထိရောက်မှုမရှိသော သို့မဟုတ် အန္တရာယ်ရှိသော အရာများကို ဆုံးဖြတ်၍ ပယ်ရှားခြင်းတွင် တည်ရှိသည်။
သတိရပါ- ဘေးကင်းရေးသည် ကုန်ကျစရိတ်မဟုတ်ဘဲ တန်ဖိုးတစ်ခုဖြစ်သည်။
သင်တွန့်ဆုတ်နေသေးရင် သင့်ကိုယ်သင် ဒီလိုမေးပါ- တိုက်ခိုက်သူတွေရဲ့ ရယ်မောသံတွေကြားမှာ သင့်ရဲ့ဒေတာဘေ့စ် ပျက်ကျသွားစေချင်သလား၊ ဒါမှမဟုတ် အခြေအနေကို ထိန်းချုပ်လိုသလား။
မျှော်လင့်ခြင်း Chen Weiliang ဘလော့ဂ် ( https://www.chenweiliang.com/ "ဒေတာဘေ့စ်ကို မလိုလားအပ်သော ပရိုဂရမ်စကင်န်ဖတ်ခြင်းမှ ကာကွယ်ရန် WordPress ရှိ Native Search Function ကို လုံးဝပိတ်ခြင်း" ဆောင်းပါးသည် သင့်အတွက် အထောက်အကူဖြစ်နိုင်ပါသည်။
ဤဆောင်းပါး၏ link ကိုမျှဝေရန်ကြိုဆိုပါတယ်:https://www.chenweiliang.com/cwl-34192.html
