Artikulo Direktoryo
Ganap na i-disable WordPress Nagtatampok ang front-end ng native search function upang maiwasan ang pagka-overwhelm ng database sa pag-scan.
Nagka-crash ang database, hindi dahil sa napakaraming content ang website mo, kundi dahil ginagamit mo pa rin ang napaka-imposibleng native WordPress search.
Maraming may-ari ng website ang nakakaligtaan ang isang katotohanan: ang front-end... ?s= Ang mga parameter ng paghahanap ay paborito ng mga hacker at scanner.
Kung may patuloy na gumagawa ng mga kahilingan sa interface ng paghahanap, mapipilitan ang iyong database na magsagawa ng libu-libong walang kabuluhang mga query.
Ang resulta? Tumaas nang husto ang paggamit ng CPU, sumabog ang paggamit ng memory, at nag-crash ang website.
Hindi ito pagmamalabis, kundi isang tunay at masakit na karanasan sa napakaraming lugar.
Bakit hindi paganahin ang katutubong paghahanap sa WordPress?
Ang built-in na search function ng WordPress ay isang full-text na LIKE query sa database.
Ang query na ito ay lubhang hindi episyente, lalo na kapag ang bilang ng mga artikulo ay lumampas sa 1; ang isang paghahanap ay maaaring tumagal ng higit sa 0.5 segundo.
Kung may gagamit ng web crawler o attack script para magpadala ng dose-dosenang mga kahilingan sa paghahanap kada segundo, agad na mapupuno ang iyong database.
Ayon sa opisyal na dokumentasyon ng WordPress, ang native search ay walang mekanismo ng proteksyon at ganap na nakalantad sa front end. Nangangahulugan ito na maaaring samantalahin ng mga attacker ang entry point na ito nang hindi man lang nagla-log in.

Alternatibong solusyon: Kumonekta sa isang mas matalinong search engine
Maraming mga propesyonal na website ang hindi na umaasa sa native search ng WordPress.
Halimbawa, pag-access Paghahanap sa Programa ng Google o Algolia Ang ganitong mga serbisyo sa paghahanap ng ikatlong partido ay hindi lamang mabilis, kundi nagbibigay din ng mas tumpak na mga resulta.
Higit sa lahat, hindi mapipinsala ng mga serbisyong ito ang iyong database dahil lahat ng query ay isinasagawa sa labas.
Kaya, kung ang iyong websitePagpoposisyonKung ito ay isang tool site, isang blog site, o kahit isang site na umaasa na sa panlabas na paghahanap, walang dahilan para patuloy na panatilihin ang built-in na function ng paghahanap ng WordPress.
Ganap na i-disable ang pagpapatupad ng front-end search code ng WordPress
Ang pinakadirektang paraan ay ang pagtuon sa tema. functions.php Idagdag ang sumusunod na code sa file:
// 禁用 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' );
Ang lohika ng code na ito ay napakasimple:
- Kapag natukoy ang isang kahilingan sa paghahanap sa harapan, agad na hinaharangan ang mga query sa database.
- Ang pagbabalik sa isang 404 na pahina ay ganap na humaharang sa entry point.
- Kasabay nito, inalis ang search form upang maiwasan ang mga hindi sinasadyang pagkilos ng user.
Ang bentahe ng pamamaraang ito ay kahit na ang isang umaatake ay gumawa ng maraming kahilingan... ?s=xxxHindi ito magti-trigger ng anumang mga query sa database.
Isang mas eleganteng implementasyon: gamit ang Fluent Snippets
Kung ayaw mong direktang baguhin ang mga file ng tema, maaari mong gamitin... Mga Matatas na Snippet Isaksak.
Pinapayagan ka ng plugin na ito na magdagdag ng mga snippet ng code nang direkta sa background, at makita ang mga epekto at pagbabago. functions.php Pareho, pero mas ligtas.
Kapag na-enable na, madali mong mapamamahalaan ang lahat ng iyong custom code nang hindi nababahala tungkol sa pag-overwrite nito ng mga update sa tema.
Mga aktwal na resulta ng pagsubok: Bumaba nang husto ang presyon sa database.
Sa isang konfigurasyon ng 2-core na CPU + 4GB na RAM Sa VPS, nang ang native search ay gumawa ng 50 request kada segundo, ang paggamit ng CPU ng database ay tumaas sa 95%.
Matapos i-disable ang paghahanap, ang parehong kahilingan ay direktang nagbalik ng 404 error, at ang pagkarga ng database ay halos zero.
Kaya naman mariing inirerekomenda ng maraming eksperto sa seguridad na patayin agad ang native search ng WordPress kung hindi mo ito kailangan.
Malinaw na sinabi ng mga mananaliksik sa seguridad sa opisyal na blog ng Sucuri:
"Ang WordPress native search ay isa sa mga pinakamadaling entry point na gamitin; ang mga attacker ay maaaring lumikha ng mga denial-of-service attack sa pamamagitan ng madalas na paggawa ng mga search request."
Ang pahayag na ito ay sapat na upang ipaliwanag ang problema.
Bilang konklusyon: Ang kaligtasan ay hindi isang opsyon, kundi isang sapilitang kurso.
Ang seguridad ng website ay hindi lamang isang bonus, ito ay usapin ng buhay at kamatayan.
Ang pag-disable sa native search ng WordPress ay maaaring mukhang maliit na aksyon, ngunit maaari nitong maiwasan ang labis na pagkapuno ng iyong database.
Sa panahong ito ng labis na impormasyon, ang tunay na karunungan ay wala sa pagdaragdag ng mga tampok, kundi sa mapagpasyang pagtatapon ng mga hindi episyente o mapanganib.
Tandaan: Ang kaligtasan ay hindi isang gastos, ito ay isang halaga.
Kung nag-aalangan ka pa rin, tanungin ang iyong sarili nito: Mas gugustuhin mo bang hayaang mag-crash ang iyong database sa gitna ng tawanan ng mga umaatake, o mas gugustuhin mong kontrolin ang sitwasyon?
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ Ang artikulong "Ganap na Pag-disable sa Native Search Function sa WordPress upang Maiwasan ang Pag-scan ng Malicious Program sa Database," na ibinahagi rito, ay maaaring makatulong sa iyo.
Maligayang pagdating upang ibahagi ang link ng artikulong ito:https://www.chenweiliang.com/cwl-34192.html
