Каталог артыкулаў
Цалкам адключыць WordPress Фронт-энд мае ўбудаваную функцыю пошуку, каб прадухіліць перагрузку базы дадзеных сканаваннем.
База дадзеных выходзіць з ладу не таму, што на вашым сайце занадта шмат кантэнту, а таму, што вы ўсё яшчэ выкарыстоўваеце гэты недарэчна неэфектыўны натыўны пошук WordPress.
Многія ўладальнікі вэб-сайтаў выпускаюць з-пад увагі адзін факт: інтэрфейс... ?s= Параметры пошуку з'яўляюцца ўлюбёнымі сярод хакераў і сканераў.
Калі хтосьці будзе працягваць рабіць запыты да інтэрфейсу пошуку, ваша база дадзеных будзе вымушана выконваць тысячы бессэнсоўных запытаў.
Вынік? Загрузка працэсара рэзка ўзрасла, выкарыстанне памяці рэзка ўзрасло, і вэб-сайт завіс.
Гэта не перабольшанне, а рэальны і балючы досвед незлічоных сайтаў.
Чаму адключаць убудаваны пошук WordPress?
Убудаваная функцыя пошуку WordPress па сутнасці з'яўляецца паўнатэкставым запытам LIKE ў базе дадзеных.
Гэты запыт надзвычай неэфектыўны, асабліва калі колькасць артыкулаў перавышае 10 000; адзін пошук можа заняць больш за 0.5 секунды.
Калі хтосьці выкарыстоўвае вэб-пошукавы робат або атакуючы скрыпт для адпраўкі дзясяткаў пошукавых запытаў у секунду, ваша база дадзеных імгненна будзе перагружаная.
Згодна з афіцыйнай дакументацыяй WordPress, натыўны пошук не мае механізмаў абароны і цалкам адкрыты для пярэдняга інтэрфейсу. Гэта азначае, што зламыснікі могуць скарыстацца гэтай кропкай уваходу, нават не ўваходзячы ў сістэму.

Альтэрнатыўнае рашэнне: падключэнне да больш разумнай пошукавай сістэмы
Шмат якія прафесійныя вэб-сайты больш не абапіраюцца на ўбудаваны пошук WordPress.
Напрыклад, доступ Пошук па праграмаванні ў Google альбо Algolia Такія староннія пошукавыя сэрвісы не толькі хуткія, але і даюць больш дакладныя вынікі.
Што яшчэ важней, гэтыя сэрвісы не пашкодзяць вашу базу дадзеных, бо ўсе запыты выконваюцца звонку.
Такім чынам, калі ваш вэб-сайтПазіцыянаваннеКалі гэта сайт з інструментамі, блог ці нават сайт, які ўжо абапіраецца на знешні пошук, няма прычын працягваць захоўваць убудаваную функцыю пошуку 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
Калі вы не хочаце непасрэдна змяняць файлы тэмы, вы можаце выкарыстоўваць... Fluent Snippets Убудова.
Гэты плагін дазваляе дадаваць фрагменты кода непасрэдна ў фонавым рэжыме і бачыць эфекты і змены. functions.php Тое ж самае, але бяспечней.
Пасля ўключэння вы можаце лёгка кіраваць усім сваім карыстальніцкім кодам, не турбуючыся аб тым, што абнаўленні тэмы перазапішуць яго.
Фактычныя вынікі: нагрузка на базу дадзеных рэзка знізілася.
У канфігурацыі з 2-ядзерны працэсар + 4 ГБ аператыўнай памяці На VPS, калі ўбудаваны пошук рабіў 50 запытаў у секунду, загрузка працэсара базы дадзеных рэзка ўзрасла да 95%.
Пасля адключэння пошуку той жа запыт вяртаў памылку 404 непасрэдна, і загрузка базы дадзеных была практычна нулявой.
Вось чаму многія эксперты па бяспецы настойліва рэкамендуюць неадкладна адключыць убудаваны пошук WordPress, калі ён вам не патрэбны.
Даследчыкі ў галіне бяспекі выразна заявілі ў афіцыйным блогу Sucuri:
«Убудаваны пошук WordPress — адна з самых простых кропак уваходу для ўзлому; зламыснікі могуць ствараць атакі тыпу «адмова ў абслугоўванні», часта робячы пошукавыя запыты».
Гэтага сцвярджэння дастаткова, каб растлумачыць праблему.
У заключэнне: бяспека — гэта не выбар, а абавязковы курс.
Бяспека вэб-сайта — гэта не проста бонус, гэта пытанне жыцця і смерці.
Адключэнне ўбудаванага пошуку WordPress можа здацца дробяззю, але яно можа выратаваць вашу базу дадзеных ад перагрузкі.
У гэты век інфармацыйнай перагрузкі сапраўдная мудрасць заключаецца не ў даданні функцый, а ў рашучым адкіданні тых, якія неэфектыўныя або небяспечныя.
Памятайце: бяспека — гэта не кошт, а каштоўнасць.
Калі вы ўсё яшчэ вагаецеся, задайце сабе пытанне: ці аддасце вы перавагу таму, каб ваша база дадзеных развалілася пад смех зламыснікаў, ці вы аддасце перавагу ўзяць сітуацыю пад кантроль?
Блог Hope Chen Weiliang ( https://www.chenweiliang.com/ Артыкул «Поўнае адключэнне функцыі ўбудаванага пошуку ў WordPress, каб прадухіліць перацягванне базы дадзеных шкоднаснымі праграмамі», апублікаваны тут, можа быць вам карысным.
Запрашаем падзяліцца спасылкай на гэты артыкул:https://www.chenweiliang.com/cwl-34192.html
