Menu
Sicurezza Wordpress

Come proteggere la pagina di login di WordPress: guida completa

Gianluca Gentile · · 4 min di lettura

Come proteggere la pagina di login di WordPress: guida completa

La pagina di login (wp-login.php) è il punto di ingresso principale per il pannello di amministrazione di WordPress. È anche il bersaglio preferito degli attaccanti: bot automatizzati tentano migliaia di combinazioni di username e password ogni giorno su siti WordPress di tutto il mondo. Proteggere questa pagina è una delle misure di sicurezza più importanti che puoi adottare.

Perché la pagina di login è un bersaglio

Tutti i siti WordPress hanno la pagina di login allo stesso indirizzo: /wp-login.php o /wp-admin/. Questo significa che un bot può trovare automaticamente la pagina di login di qualsiasi sito WordPress senza fare alcuna ricognizione. I tipi di attacco più comuni:

  • Brute force: il bot prova migliaia di combinazioni di username e password usando dizionari di password comuni.
  • Credential stuffing: il bot usa credenziali rubate da altri siti (data breach) sperando che l’utente usi la stessa password.
  • Enumerazione utenti: il bot scopre gli username validi tramite ?author=1 o la REST API, poi concentra l’attacco su quegli account.

Limitare i tentativi di login

La prima difesa è limitare il numero di tentativi di login falliti da un singolo indirizzo IP. Dopo un certo numero di tentativi sbagliati, l’IP viene bloccato temporaneamente.

Plugin consigliati:

  • Limit Login Attempts Reloaded: semplice ed efficace. Configura 3-4 tentativi massimi, lockout di 20 minuti al primo blocco e 24 ore dopo 4 blocchi.
  • Wordfence: include la limitazione dei tentativi tra le sue funzionalità di sicurezza, insieme a firewall e scanner malware.
  • Login LockDown: alternativa leggera che registra gli IP e i tentativi falliti.

Cambiare l’URL della pagina di login

Se i bot non trovano la pagina di login, non possono attaccarla. Cambiare l’URL da /wp-login.php a qualcosa di personalizzato (es. /accesso-riservato) blocca la maggior parte degli attacchi automatizzati.

Il plugin WPS Hide Login è il più semplice per farlo:

  1. Installa e attiva WPS Hide Login.
  2. Vai su Impostazioni → Generali, scorri in fondo.
  3. Nel campo “URL di login”, inserisci il nuovo percorso (es. accesso-riservato).
  4. Salva. Da ora, /wp-login.php restituirà un errore 404.

Importante: segna il nuovo URL in un posto sicuro. Se lo dimentichi, puoi disattivare il plugin rinominando la sua cartella via FTP.

Attivare l’autenticazione a due fattori (2FA)

Il 2FA aggiunge un secondo livello di protezione: anche se un attaccante indovina la password, non potrà accedere senza il codice temporaneo generato dal tuo telefono.

Plugin consigliati:

  • WP 2FA: supporta Google Authenticator, Authy e codici di backup. Interfaccia semplice e possibilità di forzare il 2FA per tutti gli utenti.
  • Two Factor Authentication: supporta TOTP (app authenticator), email e codici di backup.
  • Wordfence Login Security: modulo gratuito separato da Wordfence che aggiunge 2FA e CAPTCHA al login.

Come minimo, attiva il 2FA per tutti gli account con ruolo Amministratore e Editor.

Aggiungere un CAPTCHA al login

Un CAPTCHA blocca i bot automatizzati costringendoli a risolvere una sfida che solo un umano può completare. Le opzioni principali:

  • Google reCAPTCHA v3: invisibile agli utenti, assegna un punteggio di “umanità” senza interazione. Il plugin Advanced Google reCAPTCHA lo integra facilmente.
  • hCaptcha: alternativa privacy-friendly a Google reCAPTCHA. Il plugin hCaptcha for WordPress lo integra nel login.
  • Cloudflare Turnstile: il CAPTCHA di Cloudflare, gratuito e rispettoso della privacy.

Proteggere wp-login.php a livello server

Per una protezione aggiuntiva, puoi aggiungere un’autenticazione HTTP a livello server. Questo crea un doppio login: prima l’autenticazione del server, poi quella di WordPress.

Per Apache (.htaccess):

  1. Crea un file .htpasswd fuori dalla document root con le credenziali.
  2. Aggiungi al .htaccess:
<Files wp-login.php>
AuthType Basic
AuthName "Area Riservata"
AuthUserFile /percorso/.htpasswd
Require valid-user
</Files>

Per Nginx:

location = /wp-login.php {
    auth_basic "Area Riservata";
    auth_basic_user_file /percorso/.htpasswd;
    include fastcgi_params;
    fastcgi_pass php-fpm;
}

Bloccare l’enumerazione degli utenti

Per impedire ai bot di scoprire gli username validi:

  • Blocca le query author: aggiungi al functions.php del tema uno snippet che reindirizza le richieste ?author=N alla homepage.
  • Limita la REST API: il plugin Disable REST API for Non-Admins nasconde gli endpoint utente della REST API ai visitatori non autenticati.
  • Usa un nickname diverso dal login: in Utenti → Il tuo profilo, imposta il “Nome visualizzato pubblicamente” diverso dall’username di login.

Checklist di sicurezza per il login

Riassumendo, ecco le misure da implementare in ordine di priorità:

  1. Password forte (16+ caratteri, unica per ogni sito).
  2. Limitazione tentativi di login (plugin Limit Login Attempts).
  3. 2FA attivo per tutti gli amministratori.
  4. URL login personalizzato (WPS Hide Login).
  5. CAPTCHA sulla pagina di login.
  6. Protezione HTTP Auth a livello server (per siti ad alto rischio).
  7. Blocco enumerazione utenti.

Serve assistenza?

Se il tuo sito WordPress subisce attacchi al login o vuoi implementare tutte le misure di protezione senza rischiare di bloccarti fuori, il team di SoccorsoWP può configurare tutto per te. Apri un ticket e blinda l’accesso al tuo WordPress.

Condividi:

Lascia un commento