Come proteggere WordPress dagli attacchi brute force: guida completa
Se gestisci un sito WordPress, devi sapere che ogni giorno migliaia di bot automatici tentano di forzare l’accesso ai pannelli di amministrazione di siti come il tuo. Gli attacchi brute force su WordPress sono una delle minacce più diffuse e sottovalutate, eppure difendersi è più semplice di quanto pensi. In questa guida ti mostro passo passo come proteggere WordPress dagli attacchi brute force con metodi concreti e collaudati, dagli interventi più rapidi fino alle protezioni avanzate a livello server. Alla fine saprai esattamente cosa fare per blindare il tuo sito, anche se non sei uno sviluppatore.
Cosa sono gli attacchi brute force e perché colpiscono WordPress
Un attacco brute force è un tentativo sistematico di indovinare le credenziali di accesso provando migliaia (o milioni) di combinazioni di username e password. I bot automatici prendono di mira soprattutto la pagina wp-login.php, il punto di ingresso standard di ogni installazione WordPress. Il motivo è semplice: WordPress alimenta oltre il 43% di tutti i siti web nel mondo, il che lo rende il bersaglio più appetibile per chi lancia attacchi su larga scala. Non è una questione di dimensioni del tuo sito: se usi WordPress, sei un potenziale obiettivo.
I segnali che il tuo sito è sotto attacco
Spesso un attacco brute force in corso passa inosservato, ma ci sono segnali chiari che dovresti imparare a riconoscere:
- Rallentamenti improvvisi: il sito diventa lento senza motivo apparente, perché il server è sovraccaricato dalle richieste al login.
- Errori 503 o timeout: il server non riesce a gestire il volume di richieste e restituisce errori.
- Log pieni di tentativi falliti: controllando i log di accesso trovi centinaia di richieste POST verso wp-login.php in pochi minuti.
- Notifiche da plugin di sicurezza: se hai un plugin attivo, ricevi email su lockout ripetuti o tentativi di accesso sospetti.
Se noti uno o più di questi segnali, è il momento di agire subito.
Limitare i tentativi di login con un plugin
La prima difesa, e anche la più immediata, è limitare il numero di tentativi di login consentiti. Per impostazione predefinita WordPress non pone alcun limite, il che significa che un bot può provare password all’infinito. Plugin come Limit Login Attempts Reloaded o Wordfence risolvono il problema in pochi clic:
- Installa e attiva il plugin dalla sezione Plugin → Aggiungi nuovo del tuo pannello WordPress.
- Nelle impostazioni, configura un massimo di 3 tentativi prima del blocco.
- Imposta un lockout di 20 minuti dopo i tentativi falliti, con blocco più lungo (24 ore) dopo ripetuti lockout.
- Attiva le notifiche via email per essere avvisato in caso di blocchi frequenti.
Questa sola misura è sufficiente a bloccare la stragrande maggioranza degli attacchi automatizzati. Se usi Wordfence, avrai anche il vantaggio di un firewall integrato che riconosce e blocca IP malevoli noti, offrendo una protezione aggiuntiva in tempo reale.
Attivare l’autenticazione a due fattori (2FA)
Anche la password più complessa può essere compromessa. L’autenticazione a due fattori aggiunge un secondo livello di verifica che rende praticamente impossibile l’accesso non autorizzato, anche se la password viene scoperta. Plugin come WP 2FA o Google Authenticator permettono di configurare il 2FA in pochi minuti:
- Installa il plugin e attivalo.
- Vai nelle impostazioni e scegli il metodo: app di autenticazione (consigliato) oppure codice via email.
- Scansiona il QR code con un’app come Google Authenticator o Authy sul tuo smartphone.
- Da questo momento, ad ogni login dovrai inserire un codice temporaneo a 6 cifre oltre alla password.
Il 2FA è una delle protezioni più efficaci in assoluto: anche se qualcuno indovina la tua password, senza il codice dal tuo telefono non potrà entrare.
Cambiare l’URL della pagina di login
Tutti i bot sanno che la pagina di login di WordPress si trova su wp-login.php. Cambiare questo URL è un modo semplice ma efficace per ridurre drasticamente i tentativi automatici. Il plugin WPS Hide Login ti permette di farlo senza toccare codice:
- Installa e attiva WPS Hide Login.
- Vai in Impostazioni → Generali e scorri fino alla sezione del plugin.
- Imposta un URL personalizzato, ad esempio /accesso-privato o qualsiasi percorso che solo tu conosci.
- Salva: ora wp-login.php restituirà un errore 404 e il login sarà raggiungibile solo dal nuovo URL.
Ricordati di annotare il nuovo indirizzo in un luogo sicuro: se lo dimentichi, dovrai disattivare il plugin via FTP.
Proteggere wp-login.php a livello server
Per una protezione ancora più solida, puoi aggiungere un blocco direttamente a livello server. Questo ferma i bot prima che raggiungano WordPress, alleggerendo il carico sul tuo hosting. Se usi Apache, aggiungi queste righe al file .htaccess nella root del sito:
<Files wp-login.php> AuthType Basic AuthName "Area riservata" AuthUserFile /percorso/.htpasswd Require valid-user </Files>
In questo modo, prima di vedere la pagina di login WordPress, il browser chiederà una coppia di credenziali HTTP aggiuntive. In alternativa, puoi limitare l’accesso per IP se lavori sempre dalla stessa rete:
<Files wp-login.php> Order Deny,Allow Deny from all Allow from 123.456.78.90 </Files>
Queste misure sono pensate per utenti più avanzati, ma rappresentano una barriera molto efficace contro gli attacchi automatizzati.
Usare password forti e username non prevedibili
Sembra banale, ma un numero sorprendente di siti WordPress viene compromesso per colpa di credenziali deboli. Ecco le regole fondamentali:
- Non usare mai “admin” come username: è il primo nome che ogni bot prova. Se lo stai usando, crea un nuovo utente amministratore con un nome diverso e cancella quello vecchio.
- Password di almeno 16 caratteri: combina lettere maiuscole e minuscole, numeri e simboli speciali.
- Usa un gestore di password: strumenti come Bitwarden, 1Password o KeePass generano e memorizzano password complesse al posto tuo.
Non sottovalutare nemmeno le password degli utenti con ruoli minori (editor, autore): un account compromesso può essere il punto di partenza per scalare i privilegi. La combinazione di username imprevedibile e password forte elimina la quasi totalità dei rischi legati al brute force tradizionale.
Bloccare l’accesso XML-RPC
Molti non sanno che xmlrpc.php è un vettore di attacco parallelo a wp-login.php. Questo file permette comunicazioni remote con WordPress ed è spesso sfruttato per tentativi brute force multipli in una sola richiesta. Se non usi app esterne per pubblicare o Jetpack, puoi disabilitarlo in sicurezza. Il metodo più rapido è aggiungere questo snippet nel file functions.php del tuo tema child:
add_filter('xmlrpc_enabled', '__return_false');
In alternativa, bloccalo direttamente da .htaccess:
<Files xmlrpc.php> Order Deny,Allow Deny from all </Files>
Plugin come Disable XML-RPC offrono la stessa funzionalità con un clic, senza toccare codice. Considera che molti attacchi brute force moderni usano proprio XML-RPC perché permette di testare centinaia di password con una singola richiesta HTTP tramite il metodo system.multicall, rendendo l’attacco molto più efficiente rispetto a wp-login.php.
Cosa fare se il tuo sito è già stato compromesso
Se sospetti che il tuo sito sia stato violato a seguito di un attacco brute force, agisci immediatamente:
- Cambia subito tutte le password: admin WordPress, database, FTP e pannello hosting.
- Controlla gli utenti: verifica che non siano stati creati account amministratore sconosciuti.
- Scansiona il sito: usa un plugin come Wordfence o Sucuri per cercare file modificati o malware.
- Ripristina da un backup pulito: se hai un backup precedente all’attacco, considera il ripristino completo.
- Aggiorna tutto: WordPress, tema e plugin all’ultima versione disponibile.
Gestire una compromissione richiede esperienza e rapidità. Se non ti senti sicuro o vuoi la certezza di un intervento professionale, il team di SoccorsoWP è specializzato proprio in questo: ripristino siti hackerati, messa in sicurezza e protezione preventiva. Apri un ticket e ricevi assistenza immediata da tecnici che affrontano questi problemi ogni giorno.