Artikkelihakemisto
Poista WordPress -käyttöliittymän natiivi hakutoiminto kokonaan käytöstä , jotta sitä ei skannata ja se ei kaada tietokantaa.
Tietokanta kaatuu, ei siksi, että verkkosivustollasi olisi liikaa sisältöä, vaan koska käytät edelleen sitä naurettavan tehotonta WordPressin natiivihakua.
Monet verkkosivustojen omistajat unohtavat yhden tosiasian: käyttöliittymän... ?s= Hakuparametrit ovat hakkereiden ja skannerien suosikkeja.
Jos joku jatkaa pyyntöjen tekemistä hakukäyttöliittymään, tietokanta joutuu suorittamaan tuhansia merkityksettömiä kyselyitä.
Tulos? Suorittimen käyttö kasvoi äkisti, muistin käyttö räjähti ja verkkosivusto kaatui.
Tämä ei ole liioittelua, vaan todellinen ja tuskallinen kokemus lukemattomista sivustoista.
Miksi WordPressin natiivihaku poistetaan käytöstä?
WordPressin sisäänrakennettu hakutoiminto on pohjimmiltaan kokotekstinen LIKE-kysely tietokannassa.
Tämä kysely on erittäin tehoton, varsinkin kun artikkeleiden määrä ylittää 10 000; yksi haku voi kestää yli 0.5 sekuntia.
Jos joku käyttää hakurobottia tai hyökkäysskriptiä lähettääkseen kymmeniä hakupyyntöjä sekunnissa, tietokanta ylikuormittuu välittömästi.
WordPressin virallisen dokumentaation mukaan natiivihaulla ei ole suojausmekanismeja ja se on täysin alttiina käyttöliittymälle. Tämä tarkoittaa, että hyökkääjät voivat hyödyntää tätä aloituspistettä edes kirjautumatta sisään.

Vaihtoehtoinen ratkaisu: Yhdistä älykkäämpään hakukoneeseen
Monet ammattimaiset verkkosivustot eivät enää ole riippuvaisia WordPressin natiivista hakutoiminnosta.
Esimerkiksi integrointi Googlen ohjelmointihakuun tai kolmannen osapuolen hakupalveluihin, kuten Algoliaan , tarjoaa paitsi nopeampia nopeuksia myös tarkempia tuloksia.
Vielä tärkeämpää on, että nämä palvelut eivät vahingoita tietokantaasi, koska kaikki kyselyt suoritetaan ulkoisesti.
Siksi, jos verkkosivustosi on sijoitettu työkalusivustoksi, blogisivustoksi tai jopa ulkoiseen hakuun perustuvaksi, ei ole mitään syytä säilyttää WordPressin sisäänrakennettua hakutoimintoa.
Poista WordPressin käyttöliittymän hakukoodin toteutus kokonaan käytöstä
Suorin tapa on keskittyä teemaan. functions.php Lisää tiedostoon seuraava koodi:
// 禁用 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' );
Tämän koodin logiikka on hyvin yksinkertainen:
- Kun etualan hakupyyntö havaitaan, tietokantakyselyt estetään välittömästi.
- Paluu 404-sivulle estää aloituskohdan kokonaan.
- Samalla hakulomake poistettiin tahattomien käyttäjien toimien estämiseksi.
Tämän menetelmän etuna on, että vaikka hyökkääjä tekisi useita pyyntöjä... ?s=xxxSe ei käynnistä mitään tietokantakyselyitä.
Tyylikkäämpi toteutus: Fluent Snippets -sovelluksen käyttö
Jos et halua muokata teeman tiedostoja suoraan, voit käyttää Fluent Snippets -laajennusta.
Tämän laajennuksen avulla voit lisätä koodinpätkiä suoraan taustalla ja nähdä niiden vaikutukset ja muutokset. functions.php Sama, mutta turvallisempi.
Kun tämä on otettu käyttöön, voit helposti hallita kaikkea mukautettua koodiasi murehtimatta teemapäivitysten korvaavista merkinnöistä.
Todelliset testitulokset: Tietokannan paine laski jyrkästi.
Kahdella suorittimen ytimellä ja 4 Gt:lla muistilla konfiguroidulla virtuaalipalvelimella tietokannan suorittimen käyttöaste nousi 95 prosenttiin, kun natiivihaku teki 50 pyyntöä sekunnissa.
Haun poistamisen jälkeen sama pyyntö palautti suoraan 404-virheen, ja tietokannan kuormitus oli lähes nolla.
Siksi monet tietoturva-asiantuntijat suosittelevat vahvasti WordPressin natiivin haun poistamista käytöstä välittömästi, jos et tarvitse sitä.
Tietoturvatutkijat totesivat Sucurin virallisella blogissa nimenomaisesti seuraavaa:
"WordPressin natiivihaku on yksi helpoimmin hyödynnettävistä sisäänpääsykohdista; hyökkääjät voivat luoda palvelunestohyökkäyksiä tekemällä usein hakupyyntöjä."
Tämä lausunto riittää selittämään ongelman.
Yhteenvetona: Turvallisuus ei ole valinnanvaraa, vaan pakollinen kurssi.
Verkkosivuston turvallisuus ei ole vain bonus, se on elämän ja kuoleman kysymys.
WordPressin natiivin haun poistaminen käytöstä saattaa tuntua pieneltä toimenpiteeltä, mutta se voi pelastaa tietokantasi ylikuormittumiselta.
Tässä informaatiotulvan aikakaudessa todellinen viisaus ei ole ominaisuuksien lisäämisessä, vaan tehottomien tai vaarallisten ominaisuuksien päättäväisessä hylkäämisessä.
Muista: Turvallisuus ei ole kustannus, se on arvo.
Jos vielä epäröit, kysy itseltäsi: Antaisitko mieluummin tietokantasi kaatua hyökkääjien naurunremakan keskellä vai ottaisitko mieluummin tilanteen hallintaasi?
Toivottavasti Chen Weiliangin blogissa ( https://www.chenweiliang.com/ ) jaetusta artikkelista "WordPressin alkuperäisen hakutoiminnon täydellinen poistaminen käytöstä haittaohjelmien skannauksen estämiseksi vetämällä tietokantaa alas" on sinulle hyötyä.
Voit vapaasti jakaa tämän artikkelin linkin: https://www.chenweiliang.com/cwl-34192.html
