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

Due fattori WordPress con app: Google Authenticator, Authy e perché SMS non basta

12 Nov 2026 — 12:45 8 min di lettura
Due fattori WordPress con app: Google Authenticator, Authy e perché SMS non basta

L'SMS come secondo fattore è meglio di niente, ma è intercettabile con SIM swapping. Le app TOTP — Google Authenticator, Authy, 2FAS — sono più sicure perché non dipendono dal operatore. Come configurare il 2FA su WordPress con un'app, i codici di recupero e perché il backup del seed è la parte che tutti dimenticano.

Il secondo fattore via SMS è il primo che si attiva perché è il più semplice: l'utente non deve installare nulla, riceve un codice sul telefono. Ma è anche il più debole, e il motivo è noto a chi segue la sicurezza da anni: l'SMS è intercettabile. Il SIM swapping — convincere l'operatore a trasferire il numero su una nuova SIM — è un attacco reale, documentato, che ha colpito account di alto profilo. Se il tuo secondo fattore è un SMS e l'attaccante fa SIM swapping del tuo numero, il tuo 2FA è bypassato.

Le app TOTP — Time-based One-Time Password — risolvono questo. Generano codici a sei cifre che cambiano ogni 30 secondi, calcolati da un seed segreto condiviso tra l'app e il server. Il seed non passa più per la rete dopo la configurazione iniziale: vive sul tuo telefono e sul server. Niente SMS, niente operatore, niente SIM swapping. Google Authenticator, Authy, 2FAS, Microsoft Authenticator sono tutte app TOTP e sono intercambiabili: il seed è standard.

Configurare il 2FA su WordPress

Su WordPress il 2FA non è nativo del core: si aggiunge con un plugin. I due più affidabili sono Wordfence Login Security (leggero, solo 2FA) e Two Factor (della community, minimale). La configurazione è la stessa: si attiva il 2FA sul proprio profilo utente, si scansiona il QR code con l'app, si inserisce un codice per confermare, e si generano i codici di recupero. Da quel momento, il login richiede password + codice dell'app.

wp-config.php
// Forzare il 2FA per gli utenti amministratori (plugin Two Factor)
// functions.php del tema child

add_filter( 'two_factor_providers_enabled', function( $providers ) {
    // Abilita solo TOTP (app), disabilita email e SMS
    return [ 'Two_Factor_Totp' => $providers['Two_Factor_Totp'] ?? true ];
} );

// Rendi il 2FA obbligatorio per i ruoli sensibili
add_filter( 'two_factor_user_has_token', function( $has_token, $user_id ) {
    $user = get_userdata( $user_id );
    if ( in_array( 'administrator', $user->roles, true ) ) {
        // Se l'admin non ha 2FA configurato, blocca il login
        $totp = get_user_meta( $user_id, '_two_factor_totp_key', true );
        if ( empty( $totp ) ) {
            return new WP_Error( '2fa_required',
                '2FA obbligatorio per gli amministratori. Configuralo dal profilo.' );
        }
    }
    return $has_token;
}, 10, 2 );
Nota: Forzare il 2FA per gli amministratori è la difesa più efficace contro il furto di credenziali. Attenzione: se forzi il 2FA e un admin non lo ha configurato, resta fuori. Assicurati che ogni admin lo configuri PRIMA di attivare il filtro, o prevedi una procedura di recupero.

I codici di recupero: il backup che tutti dimenticano

La parte che tutti dimenticano è il backup del seed e dei codici di recupero. Se perdi il telefono — perso, rubato, rotto — e non hai i codici di recupero, sei fuori dal tuo account. I codici di recupero sono monouso, generati alla configurazione, da conservare in un posto sicuro (password manager, stampati in cassaforte). Il seed — il segreto dietro il QR code — va conservato separatamente, perché permette di ricreare il 2FA su un telefono nuovo.

L'errore più comune è configurare il 2FA, non salvare i codici di recupero, e scoprire mesi dopo che servono quando il telefono si rompe. A quel punto l'unica via è il recupero manuale via database (disabilitare il 2FA direttamente in wp_usermeta), che richiede accesso al database e che va fatto con cautela perché disabilita temporaneamente la sicurezza. La regola: i codici di recupero si generano e si conservano SUBITO, non 'quando ho tempo'.

Terminale
# Disabilitare il 2FA di emergenza via WP-CLI (se si è fuori)
# Richiede accesso SSH al server

# Rimuove il seed TOTP per l'utente admin
wp user meta delete 1 _two_factor_totp_key

# Rimuove i provider attivi (disabilita il 2FA per quell'utente)
wp user meta delete 1 _two_factor_enabled_providers

# ATTENZIONE: questo disabilita il 2FA — l'utente può entrare
# solo con la password. Riattivare il 2FA subito dopo il login.
# Va fatto solo in emergenza, con accesso al server protetto.
Nota: La disabilitazione di emergenza via WP-CLI richiede accesso SSH al server, che è già un livello di sicurezza. Va fatta solo in emergenza reale e seguita dalla riattivazione del 2FA. Se il server stesso è compromesso, disabilitare il 2FA non aiuta — il problema è più grave.

Il 2FA con app TOTP è lo standard per la sicurezza del login WordPress. Non è inviolabile — nessuna misura lo è — ma alza il costo dell'attacco abbastanza da scoraggiare la maggior parte degli attaccanti, che preferiscono bersagli più facili. La differenza tra un sito con 2FA e uno senza è la differenza tra un login che richiede una password rubata più un telefono fisico, e un login che richiede solo una password rubata. Un audit di sicurezza include la verifica del 2FA sui profili sensibili e dei codici di recupero conservati correttamente.

Audit di sicurezza

Verifica che il 2FA sia attivo e configurato correttamente.

Un audit di sicurezza individua gli account senza 2FA, le configurazioni deboli e i codici di recupero mancanti prima che diventino un'emergenza.

Audit di sicurezza
Condividi