Il tuo sito WordPress è già stato violato? Forse no, ma se non hai mai fatto hardening, è solo questione di tempo. Lo vediamo tutti i giorni nei progetti che ci arrivano: plugin obsoleti, utenti admin con password deboli, permessi dei file a 777, backup assente. Piccole dimenticanze che aprono la porta a ransomware, defacement o furto di dati. Noi, di Meteora Web, trattiamo la sicurezza come un investimento, non un costo. Questa guida ti dà una checklist operativa e completa per blindare WordPress, con comandi reali e decisioni concrete.
Perché l'Hardening non è opzionale
WordPress alimenta oltre il 40% del web. È un bersaglio enorme. Le vulnerabilità più sfruttate non sono bug zero-day: sono configurazioni lasche. Un plugin non aggiornato, un tema nulled, un utente 'admin' con password 'admin123'. Noi abbiamo visto clienti perdere mesi di lavoro per un form non protetto. L'hardening non è paranoia: è manutenzione ordinaria.
1. Aggiornamenti: il primo muro
Mantieni tutto aggiornato: core, plugin, temi. Le vulnerabilità note vengono patchate ogni settimana. Se non aggiorni, lasci la porta aperta.
Azioni immediate:
- Attiva gli aggiornamenti automatici per i plugin critici? No, meglio la gestione manuale per testare la compatibilità. Imposta aggiornamenti automatici solo per i plugin di sicurezza (es. Wordfence).
- Usa
wp-cliper aggiornare da terminale:wp plugin update --allewp theme update --all. - Verifica la lista dei plugin disinstallati: se è disattivato ma ancora presente, cancellalo. Un plugin inattivo può ancora essere vulnerabile.
2. Utenti e permessi: meno è meglio
Mai usare l'utente 'admin'. Troppi attacchi brute force partono da lì. Crea un utente con nome difficile e assegna privilegi minimi.
Checklist:
- Cancella l'utente 'admin' se esiste. Assegna i suoi contenuti a un nuovo utente.
- Usa password forti (minimo 16 caratteri, alfanumerici e simboli). Per gestirle, leggi la nostra guida sui password manager.
- Limita i tentativi di login: plugin come Limit Login Attempts Reloaded bloccano IP dopo N tentativi.
- Attiva la 2FA per tutti gli amministratori. Senza, la password è l'unica barriera.
3. File system: permessi e configurazione
I permessi dei file sono spesso l'anello debole. Su server Linux, wp-config.php deve essere leggibile solo da chi serve il sito.
Comandi da eseguire (via SSH):
# Permessi standard per WordPress
find /path/to/wp -type d -exec chmod 755 {} \;
find /path/to/wp -type f -exec chmod 644 {} \;
# Proteggi wp-config.php
chmod 440 wp-config.php
# Blocca l'accesso a wp-content/uploads (esegui dentro .htaccess)
Modifica wp-config.php per maggiore sicurezza:
// Disabilita la modifica dei file dall'admin
if ( ! defined( 'DISALLOW_FILE_EDIT' ) ) {
define( 'DISALLOW_FILE_EDIT', true );
}
// Forza SSL nell'amministrazione
if ( ! defined( 'FORCE_SSL_ADMIN' ) ) {
define( 'FORCE_SSL_ADMIN', true );
}
// Disabilita il debug (non in produzione)
if ( ! defined( 'WP_DEBUG' ) ) {
define( 'WP_DEBUG', false );
}
4. Database: salta il prefisso standard
Il prefisso wp_ è il più comune. Gli attacchi SQL injection lo sanno. Cambialo prima di installare il sito (o tramite plugin post-installazione).
Come fare:
-- Modifica manuale del prefisso (attenzione: backup prima)
RENAME TABLE wp_users TO yourprefix_users;
RENAME TABLE wp_usermeta TO yourprefix_usermeta;
-- ... ripeti per tutte le tabelle
Poi aggiorna wp-config.php con $table_prefix = 'yourprefix_';.
5. .htaccess e sicurezza del server
Blocca l'accesso diretto a file sensibili e disabilita la navigazione delle directory.
# .htaccess nella root di WordPress
# Blocca l'accesso a wp-config.php
order allow,deny
deny from all
# Disabilita la lista delle directory
Options -Indexes
# Blocca l'esecuzione di PHP in uploads
php_flag engine off
# Proteggi il file .htaccess stesso
order allow,deny
deny from all
6. Plugin di sicurezza: scegli con criterio
Non installare 10 plugin di sicurezza. Ne bastano 1-2, ben configurati. Noi consigliamo:
- Wordfence: Firewall e scansione malware.
- iThemes Security (o Solid Security): Hardening completo.
- Sucuri Security: Audit logging e monitoraggio.
Configura il firewall per bloccare IP malevoli e attivare la protezione da brute force. Attenzione: un plugin mal configurato può rallentare il sito. Testa sempre le performance.
7. SSL e HTTPS: non c'è scusa
Senza SSL, i dati viaggiano in chiaro. Oggi Let's Encrypt lo offre gratis. Noi, quando su un server si è rotto il rinnovo automatico dei certificati, l'abbiamo risolto e automatizzato. Fallo anche tu.
Azioni:
- Ottieni un certificato SSL (Let's Encrypt via Certbot).
- Imposta il rinnovo automatico con un cron job:
0 0 * * * certbot renew. - Forza HTTPS nel
.htaccesso via plugin. - Verifica che tutti i media siano serviti su HTTPS (nessun mixed content).
8. Backup: prima di tutto
Un sito sicuro ma senza backup non è sicuro. Se viene violato, l'unica soluzione è ripristinare. Automatizza i backup di database e file.
Strumenti:
- UpdraftPlus per backup su cloud (Google Drive, Dropbox).
- VaultPress (Jetpack) per backup real-time.
- Script custom via cron per backup raw.
Testa il ripristino almeno una volta al mese. Un backup che non si ripristina è inutile.
9. Monitoraggio e logging
Non puoi difenderti se non sai cosa succede. Attiva i log degli errori di WordPress e del server.
In wp-config.php:
define( 'WP_DEBUG_LOG', true ); // scrive in wp-content/debug.log
// Ricorda: disabilitalo in produzione se non serve per debug
Usa un plugin come Activity Log per tracciare modifiche di utenti, login falliti, aggiornamenti.
10. Headers di sicurezza
Invia header HTTP che prevengono attacchi XSS, clickjacking, MIME sniffing. Aggiungi queste righe al tuo .htaccess o via server Nginx:
# .htaccess
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"
Header always set X-XSS-Protection "1; mode=block"
Header always set Referrer-Policy "no-referrer-when-downgrade"
Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:;"
In sintesi — cosa fare adesso
- Aggiorna core, plugin e temi. Cancella quelli inutilizzati.
- Rimuovi l'utente 'admin' e attiva la 2FA per tutti gli amministratori.
- Correggi i permessi dei file e proteggi
wp-config.php. - Configura .htaccess per bloccare accessi diretti e directory listing.
- Imposta backup automatici e testa il ripristino.
Non serve diventare esperti di cybersecurity: bastano poche azioni sistematiche. Se vuoi approfondire le vulnerabilità più comuni, leggi la nostra guida sulle OWASP Top 10. E ricorda: la sicurezza nelle PMI italiane è sistematicamente sottovalutata. Noi lo vediamo ogni giorno. Inizia ora.
Sponsored Protocol