Úplne vypnite funkciu natívneho vyhľadávania vo WordPresse, aby ste zabránili škodlivým programom v skenovaní a páde databázy.

Úplne zakázať WordPress Front-end obsahuje natívnu funkciu vyhľadávania, ktorá zabraňuje zahlteniu databázy skenovaním.

Databáza nepadá preto, že by vaša webová stránka mala priveľa obsahu, ale preto, že stále používate to smiešne neefektívne natívne vyhľadávanie WordPressu.

Mnoho majiteľov webových stránok prehliada jeden fakt: front-end... ?s= Parametre vyhľadávania sú obľúbené u hackerov a skenerov.

Ak niekto neustále zadáva požiadavky do vyhľadávacieho rozhrania, vaša databáza bude nútená vykonávať tisíce nezmyselných dopytov.

Výsledok? Využitie CPU prudko vzrástlo, využitie pamäte explodovalo a webová stránka spadla.

Toto nie je preháňanie, ale skutočná a bolestivá skúsenosť z nespočetných lokalít.

Prečo zakázať natívne vyhľadávanie vo WordPresse?

Vstavaná vyhľadávacia funkcia WordPressu je v podstate fulltextový LIKE dotaz v databáze.

Tento dopyt je extrémne neefektívny, najmä ak počet článkov presahuje 10 000; jedno vyhľadávanie môže trvať viac ako 0.5 sekundy.

Ak niekto použije webový prehľadávač alebo útočný skript na odosielanie desiatok vyhľadávacích požiadaviek za sekundu, vaša databáza bude okamžite zahltená.

Podľa oficiálnej dokumentácie WordPressu nemá natívne vyhľadávanie žiadne ochranné mechanizmy a je úplne vystavené front-endu. To znamená, že útočníci môžu tento vstupný bod zneužiť aj bez prihlásenia.

Úplne vypnite funkciu natívneho vyhľadávania vo WordPresse, aby ste zabránili škodlivým programom v skenovaní a páde databázy.

Alternatívne riešenie: Pripojte sa k inteligentnejšiemu vyhľadávaču

Mnoho profesionálnych webových stránok sa už nespolieha na natívne vyhľadávanie WordPressu.

Napríklad prístup Vyhľadávanie programovania na Googli alebo Algolia Takéto vyhľadávacie služby tretích strán sú nielen rýchle, ale poskytujú aj presnejšie výsledky.

A čo je dôležitejšie, tieto služby neochromia vašu databázu, pretože všetky dotazy sa vykonávajú externe.

Takže ak vaša webová stránkapozíciuAk ide o stránku s nástrojmi, blog alebo dokonca stránku, ktorá sa už spolieha na externé vyhľadávanie, nie je dôvod naďalej zachovávať vstavanú funkciu vyhľadávania WordPressu.

Úplne zakážte implementáciu vyhľadávacieho kódu na front-ende WordPressu

Najpriamejším spôsobom je zamerať sa na tému. functions.php Pridajte do súboru nasledujúci kód:

// 禁用 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 tohto kódu je veľmi jednoduchá:

  • Po zistení požiadavky na vyhľadávanie v popredí sa databázové dotazy okamžite zablokujú.
  • Návrat na stránku 404 úplne zablokuje vstupný bod.
  • Zároveň bol odstránený vyhľadávací formulár, aby sa zabránilo náhodným akciám používateľov.

Výhodou tejto metódy je, že aj keď útočník zadá viacero požiadaviek... ?s=xxxNespustí žiadne databázové dotazy.

Elegantnejšia implementácia: použitie Fluent Snippets

Ak nechcete priamo upravovať súbory témy, môžete použiť... Úryvky Fluent zapojiť.

Tento plugin vám umožňuje pridávať úryvky kódu priamo na pozadí a sledovať efekty a úpravy. functions.php To isté, ale bezpečnejšie.

Po povolení môžete jednoducho spravovať všetok svoj vlastný kód bez obáv z prepísania aktualizáciami témy.

Skutočné výsledky: Tlak na databázu prudko klesol.

V konfigurácii 2-jadrový procesor + 4 GB RAM Na VPS, keď natívne vyhľadávanie vykonalo 50 požiadaviek za sekundu, využitie CPU databázy prudko vzrástlo na 95 %.

Po vypnutí vyhľadávania tá istá požiadavka priamo vrátila chybu 404 a zaťaženie databázy bolo takmer nulové.

Preto mnohí bezpečnostní experti dôrazne odporúčajú okamžite vypnúť natívne vyhľadávanie WordPressu, ak ho nepotrebujete.

Bezpečnostní výskumníci to výslovne uviedli na oficiálnom blogu spoločnosti Sucuri:

„Natívne vyhľadávanie vo WordPresse je jedným z najjednoduchších vstupných bodov, ktoré možno zneužiť; útočníci môžu vytvárať útoky typu „donier služby“ častým zadávaním vyhľadávacích požiadaviek.“

Toto vyhlásenie je dostatočné na vysvetlenie problému.

Záverom: Bezpečnosť nie je možnosť, ale povinný kurz.

Bezpečnosť webových stránok nie je len bonus, je to otázka života a smrti.

Zakázanie natívneho vyhľadávania vo WordPresse sa môže zdať ako malá akcia, ale môže zachrániť vašu databázu pred preťažením.

V tejto dobe informačného preťaženia skutočná múdrosť nespočíva v pridávaní funkcií, ale v rozhodnom zahodení tých, ktoré sú neefektívne alebo nebezpečné.

Pamätajte: Bezpečnosť nie je cena, je to hodnota.

Ak stále váhate, položte si túto otázku: Radšej by ste nechali svoju databázu zrútiť sa uprostred smiechu útočníkov, alebo by ste radšej prevzali kontrolu nad situáciou?

发表 评论

Vaša emailová adresa nebude zverejnená. 必填 项 已 用 * Štítok

Adresár článkov
Prejdite na začiatok