La sicurezza di WordPress non è opzionale: è obbligatoria non appena un sito genera traffico o fatturato. Ogni mese sistemo siti compromessi (contenuti iniettati, redirect malevoli, un negozio svuotato da uno skimmer di carte) che avrebbero potuto evitare il peggio con alcune misure di base, spesso trascurate per mancanza di tempo o competenze. Ecco la guida completa, dal più semplice al più tecnico.
1. Autenticazione rafforzata
Attivate sempre l'autenticazione a due fattori (2FA) per tutti gli account con ruolo di amministratore o editor: un plugin come Wordfence o Two Factor offre un'integrazione semplice con un'app di autenticazione. Limitate rigorosamente i tentativi di accesso (Wordfence, Limit Login Attempts Reloaded), con ban automatico dell'IP dopo 3-5 fallimenti. Vietate anche i nomi utente generici come "admin", che restano il primo bersaglio degli attacchi automatizzati a forza bruta.
2. Hardening dei file e della configurazione
Disattivate la modifica dei file direttamente dall'interfaccia wp-admin aggiungendo la costante DISALLOW_FILE_EDIT in wp-config.php: questo impedisce a un aggressore con accesso admin di modificare direttamente il codice del tema o di un plugin. Proteggete il file wp-config.php stesso con una regola .htaccess che ne vieti l'accesso diretto. Applicate permessi rigorosi su file (644) e cartelle (755), e non lasciate mai una cartella scrivibile a 777, nemmeno temporaneamente.
3. Gestione rigorosa degli aggiornamenti
Attivate gli aggiornamenti minori automatici del core di WordPress (patch di sicurezza), che non comportano rischio di rottura. Per gli aggiornamenti maggiori e i plugin, prevedete un test su un ambiente di staging prima dell'applicazione in produzione. Verificate ogni mese tutte le estensioni attive: un plugin abbandonato da più di un anno senza aggiornamenti è un rischio di sicurezza che cresce col tempo, e va sostituito o rimosso. Un sito con 40 plugin installati, di cui 15 inattivi, è una porta d'ingresso che chiudo sistematicamente presso i miei clienti.
4. Firewall applicativo e monitoraggio
Un firewall applicativo (WAF) in prima linea, come quello incluso gratuitamente nel piano base di Cloudflare, filtra gran parte del traffico malevolo prima ancora che raggiunga il server. In aggiunta, Wordfence o Sucuri eseguono una scansione antimalware regolare dei file del sito, con avviso immediato in caso di modifica sospetta di un file core. Configurate notifiche via email per ogni anomalia rilevata: accesso da un paese insolito, modifica di un file di sistema, picco di traffico anomalo.
5. Backup affidabili e testati
I backup automatici esternalizzati (ad esempio UpdraftPlus abbinato a uno storage Google Drive o Amazon S3) devono girare almeno una volta al giorno, includendo sia il database sia i file. La regola 3-2-1 resta il riferimento: 3 copie dei dati, su 2 supporti diversi, di cui 1 fuori sede. Il punto più spesso trascurato: testate davvero il ripristino almeno una volta al trimestre. Un backup mai testato è una falsa sicurezza.
6. Certificato SSL e header di sicurezza
L'HTTPS deve essere attivo su tutto il sito senza eccezioni, con redirect automatico da HTTP a HTTPS. Aggiungete gli header di sicurezza consigliati (Content-Security-Policy, X-Frame-Options, X-Content-Type-Options) tramite la configurazione del server o un plugin dedicato, per ridurre la superficie di attacco contro cross-site scripting e clickjacking.
Cosa fare in caso di sito già compromesso
Se il sito è già compromesso, isolatelo immediatamente (modalità manutenzione, accesso ristretto), cambiate tutte le password (admin, FTP, database), ripristinate da un backup pulito precedente alla compromissione se possibile, quindi identificate la falla sfruttata prima di rimettere online il sito per evitare una recidiva immediata. Sui siti che tratto dopo un attacco, la causa è nel 70% dei casi un plugin obsoleto o una password debole.