Potpuno onemogućite izvornu funkciju pretraživanja u WordPressu kako biste spriječili zlonamjerne programe da skeniraju i ruše bazu podataka.

Potpuno onemogući WordPress Front-end ima ugrađenu funkciju pretraživanja kako bi se spriječilo preopterećenje baze podataka skeniranjem.

Baza podataka se ruši ne zato što vaša web stranica ima previše sadržaja, već zato što i dalje koristite tu smiješno neefikasnu izvornu WordPress pretragu.

Mnogi vlasnici web stranica previđaju jednu činjenicu: prednji dio... ?s= Parametri pretrage su omiljeni među hakerima i skenerima.

Ako neko nastavi slati zahtjeve interfejsu za pretragu, vaša baza podataka će biti prisiljena izvršavati hiljade besmislenih upita.

Rezultat? Korištenje CPU-a je naglo poraslo, korištenje memorije je eksplodiralo, a web stranica se srušila.

Ovo nije pretjerivanje, već stvarno i bolno iskustvo bezbrojnih lokacija.

Zašto onemogućiti WordPress izvornu pretragu?

WordPressova ugrađena funkcija pretraživanja je u suštini LIKE upit cijelog teksta u bazi podataka.

Ovaj upit je izuzetno neefikasan, posebno kada broj članaka prelazi 1; jedna pretraga može trajati više od 0.5 sekundi.

Ako neko koristi web crawler ili napadački skript za slanje desetina zahtjeva za pretraživanje u sekundi, vaša baza podataka će odmah biti preopterećena.

Prema službenoj WordPress dokumentaciji, izvorna pretraga nema zaštitne mehanizme i potpuno je izložena front-endu. To znači da napadači mogu iskoristiti ovu ulaznu tačku čak i bez prijave.

Potpuno onemogućite izvornu funkciju pretraživanja u WordPressu kako biste spriječili zlonamjerne programe da skeniraju i ruše bazu podataka.

Alternativno rješenje: Povežite se s pametnijim pretraživačem

Mnoge profesionalne web stranice više se ne oslanjaju na WordPressovu izvornu pretragu.

Na primjer, pristup Google programska pretraga ili Algolia Takve usluge pretraživanja trećih strana nisu samo brze, već pružaju i preciznije rezultate.

Što je još važnije, ove usluge neće osakatiti vašu bazu podataka jer se svi upiti izvršavaju eksterno.

Dakle, ako vaša web stranicaPozicioniranjeAko se radi o alatnoj stranici, blogu ili čak stranici koja se već oslanja na vanjsku pretragu, nema razloga da se nastavi zadržavati ugrađena funkcija pretrage WordPressa.

Potpuno onemogućite implementaciju WordPress front-end koda za pretragu

Najdirektniji način je fokusiranje na temu. functions.php Dodajte sljedeći kod u datoteku:

// 禁用 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 ovog koda je vrlo jednostavna:

  • Čim se otkrije zahtjev za pretragu u prvom planu, upiti baze podataka se odmah blokiraju.
  • Povratak na 404 stranicu potpuno blokira ulaznu tačku.
  • Istovremeno, obrazac za pretragu je uklonjen kako bi se spriječile slučajne radnje korisnika.

Prednost ove metode je u tome što čak i ako napadač uputi brojne zahtjeve... ?s=xxxNeće pokrenuti nikakve upite bazi podataka.

Elegantnija implementacija: korištenje Fluent Snippetsa

Ako ne želite direktno mijenjati datoteke teme, možete koristiti... Fluent Snippets plugin.

Ovaj dodatak vam omogućava da direktno u pozadini dodate dijelove koda i vidite efekte i modifikacije. functions.php Isto, ali sigurnije.

Nakon što je omogućeno, možete lako upravljati svim svojim prilagođenim kodom bez brige da će ga ažuriranja teme prebrisati.

Stvarni rezultati testa: Pritisak na bazu podataka je naglo opao.

U konfiguraciji od 2-jezgreni CPU + 4GB RAM-a Na VPS-u, kada je izvorna pretraga izvršila 50 zahtjeva u sekundi, iskorištenost CPU-a baze podataka porasla je na 95%.

Nakon onemogućavanja pretrage, isti zahtjev je direktno vratio grešku 404, a opterećenje baze podataka je bilo gotovo nula.

Zbog toga mnogi sigurnosni stručnjaci toplo preporučuju da odmah isključite WordPressovu izvornu pretragu ako vam nije potrebna.

Istraživači sigurnosti su eksplicitno naveli na službenom blogu Sucurija:

"WordPress izvorna pretraga je jedna od najlakših ulaznih tačaka za iskorištavanje; napadači mogu kreirati napade uskraćivanja usluge čestim zahtjevima za pretragu."

Ova izjava je dovoljna da objasni problem.

Zaključno: Sigurnost nije opcija, već obavezan kurs.

Sigurnost web stranice nije samo bonus, to je pitanje života i smrti.

Onemogućavanje WordPressove izvorne pretrage može izgledati kao mala radnja, ali može spasiti vašu bazu podataka od preopterećenja.

U ovom dobu preopterećenosti informacijama, prava mudrost ne leži u dodavanju funkcija, već u odlučnom odbacivanju onih koje su neefikasne ili opasne.

Zapamtite: Sigurnost nije trošak, već vrijednost.

Ako i dalje oklijevate, zapitajte se: Da li biste radije pustili da vam se baza podataka sruši usred smijeha napadača ili biste radije preuzeli kontrolu nad situacijom?

Komentari

Vaša email adresa neće biti objavljena. Koriste se obavezna polja * Oznaka

Article Directory
Dođite na vrh