La sicurezza WordPress è un tema che molti gestori di siti trascurano finché non subiscono un attacco. A quel punto i danni — contenuti compromessi, blacklist di Google, perdita di dati — sono spesso difficili da recuperare completamente. Questa guida indica le misure concrete da adottare, in ordine di priorità, senza perdersi in configurazioni teoriche che nessuno applica davvero.
Perché WordPress è un Bersaglio Frequente
WordPress alimenta oltre il 40% dei siti web mondiali. Questa quota di mercato dominante lo rende il CMS più attaccato in assoluto: gli script automatizzati che scansionano il web alla ricerca di vulnerabilità sono calibrati su WordPress per default. Non è una debolezza intrinseca della piattaforma — è una conseguenza della sua diffusione.
I vettori di attacco più comuni su WordPress:
- Credenziali deboli — attacchi brute force sull’URL di login (
/wp-admino/wp-login.php) con dizionari di password comuni. È ancora il metodo di compromissione più frequente. - Plugin e temi vulnerabili — ogni plugin non aggiornato è una potenziale porta d’ingresso. La maggior parte delle vulnerabilità WordPress sfruttate attivamente riguarda plugin di terze parti, non il core.
- File con permessi errati — permessi troppo permissivi su file e cartelle permettono l’esecuzione di codice arbitrario da parte di attaccanti che hanno ottenuto un accesso parziale.
- Installazioni abbandonate — siti WordPress non aggiornati da mesi o anni, spesso dimenticati su hosting condivisi, sono bersagli privilegiati perché vulnerabili e non monitorati.
Mettere in Sicurezza WordPress: le Priorità Concrete
Mettere in sicurezza WordPress non richiede competenze da sistemista — richiede disciplina operativa e la giusta configurazione di partenza. Ecco le azioni in ordine di impatto.
1. Credenziali e accesso all’area admin
L’URL di login standard /wp-login.php è noto a tutti gli script di attacco. Cambiarlo con un plugin come WPS Hide Login è la prima misura da adottare — riduce il rumore di fondo degli attacchi automatizzati in modo immediato.
Per le credenziali:
- Username admin mai uguale a “admin”, “administrator” o al nome del sito
- Password di almeno 16 caratteri generata casualmente — non inventata
- Autenticazione a due fattori (2FA) attiva per tutti gli utenti con ruolo Editor o superiore
Gestire password complesse e uniche per ogni accesso diventa sostenibile solo con un password manager dedicato. La guida su password manager e sicurezza delle credenziali spiega come scegliere e usare correttamente questi strumenti.
2. Aggiornamenti: core, plugin e temi
Il WordPress core si aggiorna automaticamente per le release di sicurezza minori — questa funzione va lasciata attiva. Per gli aggiornamenti maggiori conviene un aggiornamento manuale controllato, dopo aver verificato la compatibilità dei plugin principali.
I plugin vanno aggiornati appena disponibile la nuova versione. Prima di aggiornare un plugin critico in produzione, testa su un ambiente staging o assicurati di avere un backup recente. I temi non attivi vanno eliminati — non semplicemente disattivati. Un tema inattivo con vulnerabilità è sfruttabile quanto uno attivo.
3. Backup regolari e verificati
Il backup non è una misura di sicurezza attiva, ma è la rete di sicurezza che rende recuperabile qualsiasi compromissione. Un sito WordPress senza backup recente verificato non è un sito sicuro — è un sito esposto a perdita permanente dei dati.
Le specifiche operative per un backup WordPress affidabile — frequenza, destinazioni remote, verifica del ripristino — sono trattate in dettaglio nella guida su backup sito WordPress: guida pratica.
4. HTTPS e certificato SSL
Un sito WordPress senza HTTPS attivo nel mercato attuale è penalizzato da Google, marcato come “non sicuro” dai browser e vulnerabile all’intercettazione delle credenziali di login. Il certificato SSL è la base minima della sicurezza sito WordPress, non un optional.
Per chi gestisce l’hosting direttamente, la guida su certificato SSL e sicurezza HTTPS copre installazione, configurazione e risoluzione dei problemi più comuni legati al misto HTTP/HTTPS.
Plugin Sicurezza WordPress: Quali Installare e Quali Evitare
I plugin sicurezza WordPress più diffusi — Wordfence, Solid Security (ex iThemes Security), All-In-One Security — offrono funzionalità sovrapposte e a volte in conflitto tra loro. Installarne più di uno contemporaneamente è controproducente: crea conflitti, appesantisce il sito e genera falsi positivi.
🔧 La regola pratica: un solo plugin di sicurezza all-in-one, configurato bene, vale più di tre plugin sovrapposti configurati male.
Le funzionalità che un buon plugin sicurezza WordPress deve coprire:
- Firewall applicativo (WAF) — filtra le richieste HTTP malevole prima che raggiungano WordPress
- Protezione brute force — limita i tentativi di login falliti e blocca gli IP dopo N tentativi
- Scansione malware — confronta i file core di WordPress con le versioni ufficiali e segnala modifiche non autorizzate
- Monitoraggio integrità file — avvisa quando file critici vengono modificati
- Log degli accessi — registra tutti i login riusciti e falliti con IP e timestamp
| Plugin | Punti di forza | Limite | Versione gratuita |
|---|---|---|---|
| Wordfence | WAF potente, scansione completa | Pesante su hosting condiviso | Sì (regole WAF in ritardo) |
| Solid Security | Setup guidato, molte opzioni | Interfaccia complessa | Sì |
| All-In-One Security | Leggero, gratuito completo | WAF meno efficace | Sì (quasi completo) |
| Sucuri | WAF cloud, ottimo per siti grandi | WAF solo a pagamento | Sì (solo monitoraggio) |
Aumentare la Sicurezza WordPress: Misure Avanzate
Oltre alle misure base, chi vuole aumentare la sicurezza WordPress in modo più strutturato può intervenire su configurazione del server, permessi file e limitazione dell’esposizione dell’API.
Permessi file e cartelle
I permessi corretti per un’installazione WordPress standard:
- Cartelle: 755 (rwxr-xr-x)
- File: 644 (rw-r–r–)
wp-config.php: 600 o 640 — mai 777.htaccess: 644
Permessi 777 su qualsiasi file o cartella in produzione sono inaccettabili: permettono la scrittura da parte di chiunque abbia accesso al server.
Protezione del file wp-config.php
Il file wp-config.php contiene le credenziali del database. Spostarlo un livello sopra la root del sito (WordPress lo trova automaticamente) e aggiungere questa regola in .htaccess lo rende inaccessibile via browser:
<files wp-config.php> order allow,deny deny from all </files>
Disabilitare l’editor file da backend
L’editor integrato di WordPress (Aspetto → Editor o Plugin → Editor) permette di modificare i file PHP direttamente dal backend. Se un attaccante accede all’admin, può usarlo per iniettare codice malevolo. Disabilitarlo in wp-config.php:
define( 'DISALLOW_FILE_EDIT', true );
Limitare l’API REST di WordPress
L’API REST espone di default informazioni sugli utenti del sito (username, ID). Un attaccante può enumerare gli utenti e usare le informazioni per attacchi brute force mirati. Limitare l’accesso all’API per gli utenti non autenticati riduce questa superficie di attacco — la maggior parte dei plugin di sicurezza include questa opzione.
Sicurezza WordPress: Cosa Fare Dopo una Compromissione
Se il sito è già stato compromesso, le priorità sono nell’ordine: isolare, pulire, ripristinare, rafforzare.
- Isola il sito — mettilo in modalità manutenzione o disattivalo temporaneamente per evitare che il malware si propaghi ai visitatori
- Cambia tutte le credenziali — password WordPress, FTP, database, hosting panel. Fallo prima di qualsiasi altro intervento
- Ripristina da un backup pulito — se hai un backup precedente alla compromissione verificato, è la soluzione più rapida e affidabile
- Scansione malware — usa Wordfence o Sucuri per identificare i file modificati; confronta con una copia pulita di WordPress
- Verifica gli utenti admin — controlla che non siano stati creati account amministratori non autorizzati
- Aggiorna tutto — core, plugin, temi prima di riportare il sito online
Per la gestione degli errori critici post-compromissione e il ripristino operativo del sito, la guida su errori WordPress e problemi comuni copre i casi più frequenti con soluzioni operative. Una volta ripristinato il sito, è opportuno verificare anche le prestazioni: un’infezione lascia spesso codice parassitico che appesantisce il caricamento anche dopo la pulizia. La guida su come velocizzare un sito WordPress indica dove misurare e come intervenire su ogni livello.
- URL di login personalizzato — non il default
/wp-login.php - Username admin non generico, password di almeno 16 caratteri casuale
- 2FA attivo per tutti gli account con ruolo Editor o superiore
- HTTPS attivo con certificato SSL valido su tutto il sito
- Core WordPress, plugin e temi aggiornati — nessuna versione obsoleta
- Plugin non utilizzati eliminati (non solo disattivati)
- Temi non attivi eliminati
- Un solo plugin di sicurezza all-in-one configurato correttamente
- Backup automatico giornaliero su destinazione remota verificata
- Permessi file corretti: 755 per cartelle, 644 per file, 600 per wp-config.php
- Editor file backend disabilitato in wp-config.php
- Prestazioni verificate con PageSpeed Insights dopo ogni intervento strutturale