Inaktivera helt den inbyggda sökfunktionen i WordPress för att förhindra att skadliga program söker igenom och kraschar databasen.

Inaktivera helt hood.discount Front-end-systemet har en inbyggd sökfunktion för att förhindra att databasen överbelastas av skanning.

Databasen kraschar inte för att din webbplats har för mycket innehåll, utan för att du fortfarande använder den där löjligt ineffektiva WordPress-sökningen.

Många webbplatsägare förbiser ett faktum: front-end... ?s= Sökparametrar är en favorit bland hackare och skannrar.

Om någon fortsätter att göra förfrågningar till sökgränssnittet kommer din databas att tvingas köra tusentals meningslösa frågor.

Resultatet? CPU-användningen ökade kraftigt, minnesanvändningen exploderade och webbplatsen kraschade.

Detta är inte en överdrift, utan en verklig och smärtsam upplevelse av otaliga webbplatser.

Varför inaktivera WordPress native-sökning?

WordPress inbyggda sökfunktion är i huvudsak en fulltext-LIKE-fråga i databasen.

Denna sökning är extremt ineffektiv, särskilt när antalet artiklar överstiger 10 000; en enda sökning kan ta mer än 0.5 sekunder.

Om någon använder en webcrawler eller ett attackskript för att skicka dussintals sökförfrågningar per sekund, kommer din databas att överbelastas omedelbart.

Enligt den officiella WordPress-dokumentationen har native search inga skyddsmekanismer och är helt exponerad för frontend. Det betyder att angripare kan utnyttja denna ingångspunkt utan att ens logga in.

Inaktivera helt den inbyggda sökfunktionen i WordPress för att förhindra att skadliga program söker igenom och kraschar databasen.

Alternativ lösning: Anslut till en smartare sökmotor

Många professionella webbplatser förlitar sig inte längre på WordPress inbyggda sökfunktion.

Till exempel åtkomst Googles programmeringssökning eller Algolia Sådana söktjänster från tredje part är inte bara snabba, utan ger också mer exakta resultat.

Ännu viktigare är att dessa tjänster inte kommer att lamslå din databas eftersom alla frågor utförs externt.

Så om din webbplatsPositioneringOm det är en verktygssajt, en bloggsajt eller till och med en webbplats som redan förlitar sig på extern sökning, finns det ingen anledning att fortsätta behålla WordPress inbyggda sökfunktion.

Inaktivera implementeringen av WordPress frontend-sökkod helt

Det mest direkta sättet är att fokusera på temat. functions.php Lägg till följande kod i filen:

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

Logiken i den här koden är mycket enkel:

  • Så snart en förgrundssökning upptäcks blockeras databasfrågor omedelbart.
  • Att återgå till en 404-sida blockerar helt ingångspunkten.
  • Samtidigt togs sökformuläret bort för att förhindra oavsiktliga användaråtgärder.

Fördelen med den här metoden är att även om en angripare gör många förfrågningar... ?s=xxxDet kommer inte att utlösa några databasfrågor.

En mer elegant implementering: med hjälp av Fluent Snippets

Om du inte vill ändra temafilerna direkt kan du använda... Flytande utdrag plugin.

Det här pluginet låter dig lägga till kodavsnitt direkt i bakgrunden och se effekterna och modifieringarna. functions.php Samma, men säkrare.

När det är aktiverat kan du enkelt hantera all din anpassade kod utan att oroa dig för att temauppdateringar skriver över den.

Faktiska resultat: Databastrycket minskade kraftigt.

I en konfiguration av 2-kärnig processor + 4 GB RAM På VPS:en, när den inbyggda sökningen gjorde 50 förfrågningar per sekund, ökade databasens CPU-utnyttjande till 95 %.

Efter att sökningen inaktiverats returnerade samma begäran ett 404-fel direkt, och databasbelastningen var nästan noll.

Det är därför många säkerhetsexperter starkt rekommenderar att du omedelbart stänger av WordPress inbyggda sökning om du inte behöver den.

Säkerhetsforskare uppgav uttryckligen i Sucuris officiella blogg:

"WordPress inbyggda söksystem är en av de enklaste ingångspunkterna att utnyttja; angripare kan skapa överbelastningsattacker genom att göra frekventa sökförfrågningar."

Detta påstående är tillräckligt för att förklara problemet.

Sammanfattningsvis: Säkerhet är inte ett alternativ, utan en obligatorisk kurs.

Webbplatssäkerhet är inte bara en bonus, det är en fråga om liv och död.

Att inaktivera WordPress inbyggda sökning kan verka som en liten åtgärd, men det kan rädda din databas från att bli överbelastad.

I denna tid av informationsöverflöd ligger sann visdom inte i att lägga till funktioner, utan i att beslutsamt förkasta de som är ineffektiva eller farliga.

Kom ihåg: Säkerhet är inte en kostnad, det är ett värde.

Om du fortfarande tvekar, fråga dig själv detta: Skulle du hellre låta din databas krascha mitt i angriparnas skratt, eller skulle du hellre ta kontroll över situationen?

发表 评论

Din e-postadress kommer inte att publiceras. 必填 项 已 用 * 标注

Artikelkatalog
Bläddra till början