1. Installa e attiva
In WordPress vai su Plugin → Aggiungi nuovo → Carica plugin, scegli lo zip del plugin e attivalo. Nel menu compare la voce «Hardening», aperta sulla scheda Stato. Tutti gli interruttori sono spenti: il sito è come prima.
2. Leggi la scheda Stato
Le righe rosse e gialle dicono cosa manca e dove si rimedia. Alcune si risolvono con un interruttore del plugin; altre (HTTPS, un amministratore che si chiama «admin», la versione di PHP, i permessi dei file) si sistemano in WordPress o nell'hosting, e la scheda ti dice come.
3. Applica le impostazioni consigliate
Un pulsante accende le protezioni adatte a quasi tutti i siti. Poi passa in rassegna le altre: XML-RPC se usi Jetpack, REST API privata se il sito ha moduli o un negozio, commenti se li usi. Ogni interruttore dice cosa cambia prima che tu lo accenda.
4. Attiva il secondo fattore
Dal tuo profilo: inquadra il QR con l'app, scrivi il primo codice e salva i dieci codici di emergenza. Gli altri amministratori hanno il periodo di grazia per fare lo stesso; chi non lo fa, alla scadenza può aprire solo il profilo finché non completa l'attivazione.
5. Verifica Server, Registro e Notifiche
Nella scheda Server guarda il pannello degli header e l'anteprima delle regole .htaccess, poi salva: il plugin le verifica con richieste al sito. Accendi il registro e scegli gli eventi da ricevere per email, con l'email di prova per controllare che arrivino.
6. Conserva le impostazioni
Nella scheda Strumenti scarica il file JSON con tutte le impostazioni e tienilo con i backup. Su un altro sito caricalo, leggi l'anteprima di cosa cambia e importa: le impostazioni legate al sito (proxy e indirizzi) restano fuori finché non le spunti tu.
wp-config.php: le vie d'uscita e la chiave dei segreti
// Suspends the IP lockouts
define( 'LOBBIT_HARDENING_NO_LOCKOUT', true );
// Suspends the second factor
define( 'LOBBIT_HARDENING_NO_TWO_FACTOR', true );
// No writing of the .htaccess files (the rules are shown to copy by hand)
define( 'LOBBIT_HARDENING_NO_HTACCESS', true );
// Own key for the secrets of the second factor, to set before the users enable it
define( 'LOBBIT_HARDENING_KEY', '...' );
WP-CLI: il secondo fattore di un utente, le impostazioni
wp lobbit-hardening two-factor status <user>
wp lobbit-hardening two-factor reset <user>
wp lobbit-hardening settings export lobbit-hardening.json
wp lobbit-hardening settings import lobbit-hardening.json --dry-run
PHP: un plugin per il secondo fattore che il plugin non conosce
add_filter( 'lobbit_hardening_two_factor_plugins', function ( $found, $active ) {
if ( in_array( 'my-2fa/my-2fa.php', $active, true ) ) {
$found['my-2fa/my-2fa.php'] = 'My 2FA';
}
return $found;
}, 10, 2 );
PHP: l'indirizzo del visitatore, per un hosting che le impostazioni non coprono
add_filter( 'lobbit_hardening_client_ip', function ( $ip ) {
// Only when every request really comes through that proxy
return $_SERVER['HTTP_X_REAL_IP'] ?? $ip;
} );
Altro filtro: lobbit_hardening_two_factor_api_login, per decidere quali accessi da programma (XML-RPC, REST API) non hanno una pagina per il codice. Su nginx la scheda Server mostra i blocchi location da copiare nella configurazione del server.