Directory articoli
Completamente disabilitato WordPress L'interfaccia utente include una funzione di ricerca nativa per evitare che il database venga sovraccaricato dalle scansioni.
Il database si blocca non perché il tuo sito web abbia troppi contenuti, ma perché stai ancora usando la ricerca nativa di WordPress, che è incredibilmente inefficiente.
Molti proprietari di siti web trascurano un fatto: il front-end... ?s= I parametri di ricerca sono tra i preferiti degli hacker e degli scanner.
Se qualcuno continua a inviare richieste all'interfaccia di ricerca, il database sarà costretto a eseguire migliaia di query inutili.
Il risultato? L'utilizzo della CPU è schizzato alle stelle, l'utilizzo della memoria è esploso e il sito web è andato in crash.
Non si tratta di un'esagerazione, ma di un'esperienza reale e dolorosa vissuta in innumerevoli luoghi.
Perché disabilitare la ricerca nativa di WordPress?
La funzione di ricerca integrata di WordPress è essenzialmente una query LIKE full-text nel database.
Questa query è estremamente inefficiente, soprattutto quando il numero di articoli supera i 1; una singola ricerca può richiedere più di 0.5 secondi.
Se qualcuno utilizza un web crawler o uno script di attacco per inviare decine di richieste di ricerca al secondo, il tuo database verrà sovraccaricato all'istante.
Secondo la documentazione ufficiale di WordPress, la ricerca nativa non ha meccanismi di protezione ed è completamente esposta al front-end. Ciò significa che gli aggressori possono sfruttare questo punto di accesso senza nemmeno effettuare il login.

Soluzione alternativa: collegarsi a un motore di ricerca più intelligente
Molti siti web professionali non si affidano più alla funzione di ricerca nativa di WordPress.
Ad esempio, accedere Ricerca di programmazione su Google o Algolia Questi servizi di ricerca di terze parti non solo sono veloci, ma forniscono anche risultati più accurati.
Ancora più importante, questi servizi non comprometteranno il tuo database perché tutte le query vengono eseguite esternamente.
Quindi, se il tuo sito webPosizionamentoSe si tratta di un sito di strumenti, di un blog o anche di un sito che già si affida alla ricerca esterna, non c'è motivo di continuare a mantenere la funzione di ricerca integrata di WordPress.
Disabilitare completamente l'implementazione del codice di ricerca front-end di WordPress
Il modo più diretto è concentrarsi sul tema. functions.php Aggiungi il seguente codice al file:
// 禁用 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' );
La logica di questo codice è molto semplice:
- Non appena viene rilevata una richiesta di ricerca in primo piano, le query al database vengono bloccate immediatamente.
- Il ritorno a una pagina di errore 404 blocca completamente il punto di accesso.
- Allo stesso tempo, il modulo di ricerca è stato rimosso per evitare azioni accidentali da parte degli utenti.
Il vantaggio di questo metodo è che anche se un attaccante effettua numerose richieste... ?s=xxxNon attiverà alcuna query di database.
Un'implementazione più elegante: utilizzare Fluent Snippets
Se non vuoi modificare direttamente i file del tema, puoi usare... Frammenti Fluenti Collegare.
Questo plugin consente di aggiungere frammenti di codice direttamente in background e di visualizzarne gli effetti e le modifiche. functions.php Stessa cosa, ma più sicura.
Una volta attivata questa opzione, potrai gestire facilmente tutto il tuo codice personalizzato senza preoccuparti che gli aggiornamenti del tema lo sovrascrivano.
Risultati effettivi: la pressione sul database è diminuita drasticamente.
In una configurazione di CPU dual-core + 4 GB di RAM Sul VPS, quando la ricerca nativa effettuava 50 richieste al secondo, l'utilizzo della CPU del database raggiungeva un picco del 95%.
Dopo aver disabilitato la ricerca, la stessa richiesta restituiva direttamente un errore 404 e il carico del database era pressoché nullo.
Ecco perché molti esperti di sicurezza raccomandano vivamente di disattivare immediatamente la ricerca nativa di WordPress se non ne avete bisogno.
I ricercatori di sicurezza hanno dichiarato esplicitamente sul blog ufficiale di Sucuri:
"La funzione di ricerca nativa di WordPress è uno dei punti di accesso più facili da sfruttare; gli aggressori possono creare attacchi denial-of-service effettuando frequenti richieste di ricerca."
Questa affermazione è sufficiente a spiegare il problema.
In conclusione: la sicurezza non è una scelta, ma un obbligo.
La sicurezza del sito web non è solo un vantaggio aggiuntivo, è una questione di vita o di morte.
Disabilitare la ricerca nativa di WordPress può sembrare un'azione di poco conto, ma può evitare che il database venga sovraccaricato.
Nell'era del sovraccarico di informazioni, la vera saggezza non sta nell'aggiungere funzionalità, ma nell'eliminare con decisione quelle inefficienti o pericolose.
Ricorda: la sicurezza non è un costo, è un valore.
Se hai ancora dei dubbi, poniti questa domanda: preferiresti lasciare che il tuo database vada in crash tra le risate degli aggressori, oppure preferiresti prendere il controllo della situazione?
Speranza Chen Weiliang Blog ( https://www.chenweiliang.com/ L'articolo "Disabilitare completamente la funzione di ricerca nativa in WordPress per impedire che la scansione di programmi dannosi rallenti il database", condiviso qui, potrebbe esservi utile.
Benvenuti a condividere il link di questo articolo:https://www.chenweiliang.com/cwl-34192.html
