Popolnoma onemogočite izvorno funkcijo iskanja v WordPressu, da preprečite zlonamernim programom skeniranje in zrušitev baze podatkov.

Popolnoma onemogočite izvorno funkcijo iskanja na WordPressovem vmesniku, da preprečite skeniranje in sesutje baze podatkov.

Baza podatkov se ne sesuje zato, ker ima vaše spletno mesto preveč vsebine, ampak zato, ker še vedno uporabljate tisto smešno neučinkovito izvorno iskanje WordPressa.

Mnogi lastniki spletnih strani spregledajo eno dejstvo: sprednji del ... ?s= Iskalni parametri so priljubljeni med hekerji in skenerji.

Če nekdo nenehno pošilja zahteve v iskalni vmesnik, bo vaša baza podatkov prisiljena izvajati na tisoče nesmiselnih poizvedb.

Rezultat? Poraba procesorja se je povečala, poraba pomnilnika se je močno povečala, spletna stran pa se je sesula.

To ni pretiravanje, temveč resnična in boleča izkušnja neštetih lokacij.

Zakaj onemogočiti izvorno iskanje v WordPressu?

Vgrajena funkcija iskanja v WordPressu je v bistvu poizvedba LIKE po celotnem besedilu v bazi podatkov.

Ta poizvedba je izjemno neučinkovita, še posebej, če število člankov presega 1; eno samo iskanje lahko traja več kot 0.5 sekunde.

Če nekdo uporabi spletnega pajka ali napadalni skript za pošiljanje več deset iskalnih zahtev na sekundo, bo vaša baza podatkov v trenutku preobremenjena.

Glede na uradno dokumentacijo WordPressa izvorno iskanje nima zaščitnih mehanizmov in je popolnoma izpostavljeno vmesniku. To pomeni, da lahko napadalci izkoristijo to vstopno točko, ne da bi se sploh prijavili.

Popolnoma onemogočite izvorno funkcijo iskanja v WordPressu, da preprečite zlonamernim programom skeniranje in zrušitev baze podatkov.

Alternativna rešitev: Povežite se s pametnejšim iskalnikom

Številna profesionalna spletna mesta se ne zanašajo več na izvorno iskanje v WordPressu.

Na primer, integracija z Googlovim iskanjem kode ali iskalnimi storitvami tretjih oseb, kot je Algolia, ne zagotavlja le hitrejših hitrosti, temveč tudi natančnejše rezultate.

Še pomembneje pa je, da te storitve ne bodo ovirale vaše baze podatkov, ker se vse poizvedbe izvajajo zunaj.

Če je torej vaše spletno mesto pozicionirano kot orodje, blog ali se celo zanaša na zunanje iskanje, ni razloga, da bi še naprej ohranjali vgrajeno funkcijo iskanja WordPressa.

Popolnoma onemogočite implementacijo iskalne kode v WordPressu

Najbolj neposreden način je, da se osredotočimo na temo. functions.php V datoteko dodajte naslednjo kodo:

// 禁用 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' );

Logika te kode je zelo preprosta:

  • Ko je zaznana zahteva za iskanje v ospredju, so poizvedbe v zbirki podatkov takoj blokirane.
  • Vrnitev na stran 404 popolnoma blokira vstopno točko.
  • Hkrati je bil iskalni obrazec odstranjen, da bi preprečili nenamerna dejanja uporabnikov.

Prednost te metode je, da tudi če napadalec poda številne zahteve ... ?s=xxxNe bo sprožilo nobenih poizvedb v zbirki podatkov.

Elegantnejša izvedba: uporaba Fluent Snippets

Če ne želite neposredno spreminjati datotek teme, lahko uporabite vtičnik Fluent Snippets.

Ta vtičnik vam omogoča dodajanje delčkov kode neposredno v ozadju in ogled učinkov ter sprememb. functions.php Enako, vendar varneje.

Ko je omogočena, lahko preprosto upravljate vso svojo kodo po meri, ne da bi vas skrbelo, da bi jo posodobitve teme prepisale.

Dejanski rezultati testov: Pritisk na bazo podatkov se je močno zmanjšal.

Na VPS-ju, konfiguriranem z dvema jedroma procesorja in 4 GB pomnilnika , se je izkoriščenost procesorja baze podatkov povečala na 95 %, ko je izvorno iskanje opravilo 50 zahtev na sekundo.

Po onemogočenju iskanja je ista zahteva neposredno vrnila napako 404, obremenitev baze podatkov pa je bila skoraj nična.

Zato mnogi varnostni strokovnjaki močno priporočajo, da WordPressovo izvorno iskanje takoj izklopite, če ga ne potrebujete.

Varnostni raziskovalci so na uradnem blogu Sucurija izrecno navedli:

"Izvorno iskanje v WordPressu je ena najlažjih vstopnih točk za izkoriščanje; napadalci lahko s pogostimi iskalnimi zahtevami ustvarijo napade zavrnitve storitve."

Ta izjava je zadostna za razlago problema.

Skratka: Varnost ni izbira, ampak obvezen tečaj.

Varnost spletnega mesta ni le bonus, ampak je vprašanje življenja in smrti.

Onemogočanje izvornega iskanja v WordPressu se morda zdi majhno dejanje, vendar lahko reši vašo bazo podatkov pred preobremenitvijo.

V tej dobi informacijske preobremenjenosti prava modrost ni v dodajanju funkcij, temveč v odločnem zavrženju tistih, ki so neučinkovite ali nevarne.

Ne pozabite: varnost ni strošek, ampak vrednota.

Če še vedno oklevate, se vprašajte: Bi raje pustili, da se vaša baza podatkov sesuje sredi smeha napadalcev, ali bi raje prevzeli nadzor nad situacijo?

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Pomaknite se na vrh