Հոդվածների տեղեկատու
Լիովին անջատել WordPress Առաջնային հատվածն ունի բնօրինակ որոնման գործառույթ՝ տվյալների բազայի սկանավորմամբ ծանրաբեռնվածությունը կանխելու համար։
Տվյալների բազան խափանվում է ոչ թե այն պատճառով, որ ձեր կայքը չափազանց շատ բովանդակություն ունի, այլ այն պատճառով, որ դուք դեռևս օգտագործում եք այդ ծիծաղելիորեն անարդյունավետ WordPress-ի բնիկ որոնումը։
Շատ կայքերի սեփականատերեր անտեսում են մեկ փաստ՝ առջևի մասը... ?s= Որոնման պարամետրերը հաքերների և սկաներների սիրելին են։
Եթե ինչ-որ մեկը շարունակի հարցումներ անել որոնման ինտերֆեյսին, ձեր տվյալների բազան ստիպված կլինի կատարել հազարավոր անիմաստ հարցումներ։
Արդյունքը՞։ CPU-ի ծանրաբեռնվածությունը կտրուկ աճեց, հիշողության ծանրաբեռնվածությունը՝ կտրուկ աճ, և կայքը խափանվեց։
Սա չափազանցություն չէ, այլ անթիվ կայքերի իրական և ցավոտ փորձառություն։
Ինչո՞ւ անջատել WordPress-ի բնիկ որոնումը։
WordPress-ի ներկառուցված որոնման գործառույթը, ըստ էության, տվյալների բազայում ամբողջական տեքստով LIKE հարցում է։
Այս հարցումը չափազանց անարդյունավետ է, հատկապես, երբ հոդվածների քանակը գերազանցում է 1-ը. մեկ որոնումը կարող է տևել ավելի քան 0.5 վայրկյան։
Եթե ինչ-որ մեկը օգտագործում է վեբ որոնողական ծրագիր կամ հարձակման սկրիպտ վայրկյանում տասնյակ որոնման հարցումներ ուղարկելու համար, ձեր տվյալների բազան ակնթարթորեն կծանրաբեռնվի։
WordPress-ի պաշտոնական փաստաթղթերի համաձայն, բնիկ որոնումը չունի պաշտպանության մեխանիզմներ և ամբողջությամբ բաց է դեպի ինտերֆեյսը։ Սա նշանակում է, որ հարձակվողները կարող են շահագործել այս մուտքի կետը՝ նույնիսկ մուտք չգործելով։

Այլընտրանքային լուծում՝ միացեք ավելի խելացի որոնողական համակարգի
Շատ մասնագիտական կայքեր այլևս չեն ապավինում WordPress-ի բնօրինակ որոնմանը։
Օրինակ՝ մուտք Google ծրագրավորման որոնում կամ Ալգոլիա Նման երրորդ կողմի որոնման ծառայությունները ոչ միայն արագ են, այլև ապահովում են ավելի ճշգրիտ արդյունքներ։
Ավելի կարևոր է, որ այս ծառայությունները չեն խաթարի ձեր տվյալների բազան, քանի որ բոլոր հարցումները կատարվում են արտաքինից։
Այսպիսով, եթե ձեր կայքըԴիրքավորումԵթե դա գործիքների կայք է, բլոգի կայք կամ նույնիսկ կայք, որն արդեն իսկ հիմնված է արտաքին որոնման վրա, ապա WordPress-ի ներկառուցված որոնման գործառույթը շարունակելու որևէ պատճառ չկա։
Լիովին անջատեք 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 էջին վերադառնալը ամբողջությամբ փակում է մուտքի կետը։
- Միաժամանակ, որոնման ձևը հեռացվել է՝ պատահական օգտատիրոջ գործողությունները կանխելու համար։
Այս մեթոդի առավելությունն այն է, որ նույնիսկ եթե հարձակվողը բազմաթիվ հարցումներ է անում... ?s=xxxԱյն չի առաջացնի տվյալների բազայի որևէ հարցում։
Ավելի էլեգանտ իրականացում՝ Fluent Snippets-ի օգտագործումը
Եթե չեք ցանկանում անմիջապես փոփոխել թեմայի ֆայլերը, կարող եք օգտագործել... Հոսուն հատվածներ միացնել.
Այս հավելվածը թույլ է տալիս անմիջապես ֆոնային ռեժիմում ավելացնել կոդի հատվածներ և տեսնել էֆեկտներն ու փոփոխությունները։ functions.php Նույնը, բայց ավելի անվտանգ։
Միացնելուց հետո դուք կարող եք հեշտությամբ կառավարել ձեր բոլոր հատուկ կոդերը՝ առանց անհանգստանալու, որ թեմայի թարմացումները կվերագրեն այն։
Իրական փորձարկման արդյունքներ. Տվյալների բազայի ճնշումը կտրուկ նվազել է։
Կոնֆիգուրացիայի մեջ 2 միջուկանի պրոցեսոր + 4 ԳԲ օպերատիվ հիշողություն VPS-ում, երբ բնիկ որոնումը կատարեց վայրկյանում 50 հարցում, տվյալների բազայի CPU-ի օգտագործումը աճեց մինչև 95%։
Որոնումն անջատելուց հետո նույն հարցումը անմիջապես վերադարձրեց 404 սխալ, և տվյալների բազայի բեռնվածությունը գրեթե զրոյական էր։
Ահա թե ինչու շատ անվտանգության մասնագետներ խորհուրդ են տալիս անմիջապես անջատել WordPress-ի բնօրինակ որոնումը, եթե դրա կարիքը չունեք։
Անվտանգության հետազոտողները Սուչուրիի պաշտոնական բլոգում հստակորեն նշել են.
«WordPress-ի բնիկ որոնումը շահագործելու ամենահեշտ մուտքի կետերից մեկն է. հարձակվողները կարող են ստեղծել ծառայության մերժման հարձակումներ՝ հաճախակի որոնման հարցումներ կատարելով»։
Այս հայտարարությունը բավարար է խնդիրը բացատրելու համար։
Եզրափակելով՝ անվտանգությունը ոչ թե ընտրություն է, այլ պարտադիր դասընթաց։
Կայքի անվտանգությունը միայն բոնուս չէ, այն կյանքի և մահվան հարց է։
WordPress-ի բնօրինակ որոնման անջատումը կարող է փոքր գործողություն թվալ, բայց այն կարող է փրկել ձեր տվյալների բազան գերծանրաբեռնվածությունից։
Տեղեկատվական գերբեռնվածության այս դարաշրջանում իրական իմաստությունը կայանում է ոչ թե գործառույթներ ավելացնելու, այլ անարդյունավետ կամ վտանգավորները վճռականորեն մերժելու մեջ։
Հիշե՛ք. Անվտանգությունը ծախս չէ, այն արժեք է։
Եթե դեռ տատանվում եք, ինքներդ ձեզ հարցրեք հետևյալը. կնախընտրեի՞ք թույլ տալ, որ ձեր տվյալների բազան փլուզվի հարձակվողների ծիծաղի տակ, թե՞ կնախընտրեի՞ք իրավիճակը վերահսկել։
Հույս Chen Weiliang բլոգ ( https://www.chenweiliang.com/ Այստեղ ներկայացված «WordPress-ում բնիկ որոնման ֆունկցիայի լրիվ անջատումը՝ վնասակար ծրագրերի սկանավորման կողմից տվյալների բազան ներքև քաշելը կանխելու համար» հոդվածը կարող է օգտակար լինել ձեզ համար։
Բարի գալուստ՝ կիսելու այս հոդվածի հղումը.https://www.chenweiliang.com/cwl-34192.html
