Salta al contenuto principale
Sistemi Attivi
WP Planet — WordPress Cloud & Managed Services
Torna al MagazineSicurezza

Autenticazione a due fattori su WordPress: perché il 2FA è l'unico vero upgrade di sicurezza

29 Ott 2026 — 09:30 8 min di lettura
Autenticazione a due fattori su WordPress: perché il 2FA è l'unico vero upgrade di sicurezza

Una password forte non basta se l'attaccante la ruba con il phishing. Il 2FA è l'unico intervento che blocca il 90% degli attacchi account-based. Come configurarlo su WordPress, quali plugin usare, e perché il 2FA per SMS è meno sicuro di quello con app.

Se dovessimo scegliere un solo intervento di sicurezza da fare su un sito WordPress, sarebbe questo: attivare il 2FA sull'account amministratore. Non il WAF, non la scansione malware, non il backup — il 2FA. Il motivo è semplice: la maggior parte degli attacchi che vediamo non sfrutta vulnerabilità del core o dei plugin. Sfrutta credenziali rubate. Phishing, password riutilizzate, breach di altri siti dove l'utente ha usato la stessa email e password. Il 2FA rende tutte queste vie inutilizzabili: anche con la password corretta, l'attaccante non entra senza il secondo fattore.

I numeri sono chiari: secondo gli studi di settore, il 2FA blocca tra l'80% e il 99% degli attacchi account-based. Non è il 100% — un attacco mirato con SIM swapping può bypassare il 2FA via SMS — ma è l'intervento con il miglior rapporto costo-benefito che esista. Costa zero (i plugin sono gratuiti), richiede cinque minuti di configurazione, e riduce drasticamente la superficie d'attacco. Eppure, la maggior parte dei siti WordPress non lo ha attivo.

Quale 2FA scegliere (e quale evitare)

Ci sono tre tipi di 2FA su WordPress: via app (Google Authenticator, Authy, 1Password), via SMS, e via chiave hardware (YubiKey). Il 2FA via SMS è il meno sicuro: è vulnerabile al SIM swapping (l'attaccante convince il operatore a trasferire il numero su una nuova SIM) e all'intercettazione. Google e Microsoft lo hanno deprecato per i loro account. Il 2FA via app è la scelta consigliata: genera un codice TOTP (Time-based One-Time Password) che cambia ogni 30 secondi e che non transita per nessuna rete. La chiave hardware è la più sicura ma richiede hardware dedicato.

Per WordPress, i plugin più affidabili sono due: Wordfence Login Security (se hai già Wordfence) e Two Factor (del team di Automattic, più leggero). Entrambi supportano TOTP via app. La configurazione con il plugin Two Factor:

wp-config.php
// Dopo aver installato il plugin Two Factor,
// forz il 2FA per tutti gli amministratori via functions.php
add_action( 'init', function() {
    // Verifica che il plugin sia attivo
    if ( ! class_exists( 'Two_Factor_Core' ) ) {
        return;
    }

    // Forza il 2FA per gli utenti con ruolo amministratore
    add_filter( 'two_factor_enabled_providers_for_user', function( $providers, $user_id ) {
        $user = get_userdata( $user_id );
        if ( $user && in_array( 'administrator', $user->roles ) ) {
            // Assicurati che TOTP sia tra i provider abilitati
            if ( ! in_array( 'Two_Factor_Totp', $providers ) ) {
                $providers[] = 'Two_Factor_Totp';
            }
        }
        return $providers;
    }, 10, 2 );
} );
Nota: Il 2FA va attivato prima per il tuo account, poi forzato per gli altri amministratori. Non forzarlo per utenti che non hanno ancora configurato il 2FA — resterebbero bloccati fuori. Comunica prima la data di obbligo, poi attiva il filtro.

Il backup dei codici di recupero

Il 2FA ha un punto debole: se perdi il telefono, resti fuori dal tuo stesso sito. Per questo ogni plugin serio genera codici di recupero — codici monouso da usare quando non hai il telefono. Stampali, salvali in un password manager, non lasciarli solo sul telefono. Se perdi il telefono e non hai i codici di recupero, l'unico modo di rientrare è disabilitare il 2FA nel database — e se non hai accesso al database, sei fuori.

Genera e salva i codici di recupero immediatamente dopo l'attivazione:

Terminale
# Verifica che un utente abbia il 2FA attivo (WP-CLI)
wp user get admin@example.com --fields=user_login,two_factor_enabled

# Se devi disabilitare il 2FA per un utente bloccato fuori
# (SOLO in emergenza, con accesso SSH al server)
wp user meta delete admin@example.com two_factor_totp_enabled
wp user meta delete admin@example.com two_factor_enabled_providers

# Verifica che l'utente possa accedere dopo il reset
wp user get admin@example.com --fields=user_login,roles
Nota: Disabilitare il 2FA dal database è un'operazione di emergenza che bypassa la sicurezza. Va fatta solo da chi ha accesso SSH al server, e solo per account verificati. Dopo il reset, l'utente deve riattivare il 2FA immediatamente. Logga sempre questa operazione.

Perché il 2FA non basta per tutto

Il 2FA protegge il login — ma non protegge tutto il resto. Un attaccante che sfrutta una vulnerabilità RCE di un plugin non ha bisogno del login: entra dal buco del plugin, non dalla porta d'ingresso. Il 2FA è necessario ma non sufficiente. Va combinato con: WAF (che blocca le richieste malevole prima che raggiungano WordPress), aggiornamenti tempestivi (che chiudono le vulnerabilità), e backup verificati (che ti permettono di ripristinare se tutto il resto fallisce).

Il 2FA è il primo intervento, non l'unico. Ma è quello che dà il ritorno più immediato: cinque minuti di configurazione che eliminano la maggior parte degli attacchi che vediamo ogni settimana. Se non hai ancora attivato il 2FA sul tuo sito WordPress, fermati e fallo ora. Tutto il resto può aspettare; questo no.

Audit di sicurezza

Verifica la sicurezza del tuo WordPress prima che diventi un'emergenza.

Un audit di sicurezza individua le falle, i plugin vulnerabili e le configurazioni deboli prima che qualcuno le sfrutti.

Audit di sicurezza
Condividi