Sicurezza WordPress: la checklist completa per proteggere il tuo sito

Le fondamenta della sicurezza WordPress: aggiornamenti e manutenzione

La sicurezza di un sito WordPress inizia da un presupposto fondamentale: mantenere tutto costantemente aggiornato. Il core di WordPress, i plugin e i temi vengono regolarmente aggiornati per correggere vulnerabilità di sicurezza scoperte. Ignorare questi aggiornamenti è il primo e più comune errore che espone i siti ad attacchi. Secondo i report di Sucuri, oltre il 50% dei siti WordPress infetti aveva plugin non aggiornati al momento dell’attacco.

WordPress offre la possibilità di attivare gli aggiornamenti automatici per il core (dalla versione 3.7 in poi) e, dalla versione 5.5, anche per plugin e temi. Ti consigliamo di attivare gli aggiornamenti automatici per le vulnerabilità di sicurezza minori. Per le major release, utilizza un ambiente di staging dove testare l’aggiornamento prima di applicarlo al sito in produzione. Plugin come WP Staging o WP Time Capsule creano staging ambiente facilmente. In caso di aggiornamento fallito (white screen of death, errori fatali), tieni pronte le credenziali FTP e un backup recente per il ripristino immediato.

Rafforzamento dell’autenticazione

Le credenziali di accesso sono il punto di ingresso più attaccato su qualsiasi sito WordPress. Il primo passo è implementare una politica di password forti: password di almeno 16 caratteri con combinazione di lettere maiuscole, minuscole, numeri e simboli. Per i siti con più utenti, plugin come Password Policy Manager permettono di imporre regole di complessità e scadenza password. Non utilizzare mail amministrative con dominio del sito per l’account admin, e non usare mai “admin” come username.

L’autenticazione a due fattori (2FA) è ormai indispensabile. Wordfence include un modulo 2FA gratuito che supporta app di autenticazione come Google Authenticator e Authy. In alternativa, il plugin Two Factor (dal team core di WordPress) offre 2FA via email, TOTP (app authenticator) e WebAuthn. Anche plugin come Google Authenticator o WP 2FA forniscono soluzioni complete. Attiva il 2FA per tutti gli account con ruoli di amministratore, editore e autore per massimizzare la protezione.

Il limite dei tentativi di login è un’altra difesa essenziale contro gli attacchi brute force. Plugin come Login LockDown o Limit Login Attempts Reloaded bloccano temporaneamente un indirizzo IP dopo un certo numero di tentativi falliti. Wordfence include questa funzionalità con opzioni configurabili per numero di tentativi, durata del blocco e whitelist di IP. Combina il reCAPTCHA di Google sul modulo di login per un ulteriore livello di protezione.

Firewall e Web Application Firewall (WAF)

Un firewall blocca il traffico malevolo prima che raggiunga il tuo sito WordPress. Wordfence include un firewall a livello di applicazione che analizza ogni richiesta in tempo reale, bloccando tentativi di SQL injection, XSS, path traversal e altre vulnerabilità note. Le regole del firewall vengono aggiornate automaticamente dal feed di threat intelligence di Wordfence. La modalità “Learning Mode” durante l’installazione iniziale evita falsi positivi.

Cloudflare offre un Web Application Firewall (WAF) a livello di DNS che protegge il sito ancor prima che il traffico raggiunga il server. Anche la versione gratuita include protezione DDoS di base e OWASP Top 10. Per una protezione più avanzata, Cloudflare Pro ($20/mese) include regole WAF personalizzabili. La combinazione Wordfence + Cloudflare WAF offre una difesa a due livelli efficace contro la maggior parte degli attacchi.

ModSecurity è un firewall a livello server che analizza le richieste HTTP prima che vengano processate da WordPress. Se il tuo hosting lo supporta (molti hosting WordPress ottimizzati come Kinsta, WP Engine, SiteGround lo includono), attivalo con le regole OWASP Core Rule Set. Questa configurazione blocca attacchi noti a livello server prima ancora che WordPress venga coinvolto, riducendo il carico sul server e aumentando la sicurezza.

Scan periodici e monitoraggio malware

La scansione regolare del sito alla ricerca di malware è fondamentale per individuare compromissioni prima che causino danni. Wordfence esegue scansioni complete del core WordPress, plugin, temi, e database, confrontando ogni file con il repository ufficiale di WordPress per identificare file modificati o sospetti. Le scansioni possono essere programmate automaticamente (giornaliere o settimanali) e includono il controllo di link sospetti, redirect malevoli e backdoor PHP.

Sucuri SiteCheck è un servizio online gratuito che scansiona il tuo sito per malware, blacklisting e vulnerabilità note. A differenza di Wordfence, non richiede installazione: basta inserire l’URL del sito. È utile come secondo parere dopo una scansione Wordfence, o per verificare rapidamente un sito di cui non hai accesso amministrativo. GOTMAL (Global Ojner’s Technologies Malware Scanner) è un’altra alternativa gratuita che controlla firme di malware note.

Controllo degli accessi e permessi dei file

I permessi dei file e delle directory sono una barriera fondamentale contro accessi non autorizzati. Su server Linux, i permessi corretti sono: 644 per i file (lettura/scrittura per proprietario, sola lettura per gruppo e altri) e 755 per le directory (lettura/esecuzione per tutti, scrittura per il proprietario). La directory wp-content/uploads dovrebbe essere 755, mentre wp-config.php dovrebbe idealmente essere 600 (solo il proprietario può leggerlo).

Proteggi wp-admin e wp-config.php tramite file .htaccess. Per wp-admin, limita l’accesso a specifici indirizzi IP o implementa un’autenticazione HTTP aggiuntiva (password-protected directory). Per wp-config.php, blocca l’accesso diretto con: <Files wp-config.php> Order deny,allow Deny from all </Files>. Disabilita la modifica di file dal pannello di amministrazione aggiungendo define(‘DISALLOW_FILE_EDIT’, true); nel wp-config.php. Questo impedisce a utenti admin malevoli o plugin compromessi di modificare file PHP del tema o dei plugin.

Sicurezza del database WordPress

Il database contiene tutte le informazioni sensibili del sito. Durante l’installazione di WordPress, modifica il prefisso delle tabelle da wp_ a un prefisso univoco (es. si8a_ o un codice casuale). Plugin come iThemes Security o Change wp-expert help you modify it even after installation (though manual modification via phpMyAdmin is more reliable). Usa credenziali del database forti e separate da quelle di altri servizi, con un utente MySQL dedicato che abbia solo i privilegi necessari (SELECT, INSERT, UPDATE, DELETE) sul database WordPress.

Esegui audit periodici della sicurezza del database: verifica che non ci siano utenti con privilegi eccessivi, controlla le tabelle per eventuali inserimenti sospetti (plugin che creano tabelle senza disinstallarle), e utilizza plugin come WPDBSpringClean o WP-Optimize per pulire revisioni, spam e dati orfani che possono rappresentare sia un rischio di sicurezza che un problema di performance.

SSL/HTTPS e header di sicurezza

SSL/HTTPS non è più opzionale: Google penalizza i siti non HTTPS e i browser moderni mostrano avvisi di sicurezza. Ottieni un certificato SSL gratuito da Let’s Encrypt tramite il tuo hosting (molti hosting includono auto-installazione) o utilizza il plugin Really Simple SSL che configura automaticamente il reindirizzamento HTTPS e aggiorna i permalink nel database.

Gli header di sicurezza HTTP aggiungono un ulteriore livello di protezione. HSTS (HTTP Strict Transport Security) forza il browser a utilizzare sempre HTTPS. Con Really Simple SSL, attiva l’opzione HSTS per includere l’header Strict-Transport-Security. X-Frame-Options: SAMEORIGIN previene il clickjacking impedendo che il tuo sito venga caricato in iframe su domini esterni. Content-Security-Policy (CSP) controlla quali risorse possono essere caricate dal browser, bloccando XSS e data injection. Wordfence o il plugin HTTP Headers permettono di configurare questi header senza modificare manualmente il file .htaccess.

Monitoraggio continuo e piano di risposta agli incidenti

Il monitoraggio continuo è l’ultimo pezzo del puzzle della sicurezza. Wordfence registra tutte le attività degli utenti, i tentativi di login, le modifiche ai file e le scansioni in un activity log consultabile dalla dashboard. Sucuri Monitoring offre un servizio di monitoraggio esterno che controlla il sito ogni poche ore per malware, blacklisting e modifiche non autorizzate, inviando alert email in caso di problemi. UptimeRobot monitora la disponibilità del sito e avvisa se il sito diventa irraggiungibile, potenziale segno di un attacco DDoS o di una compromissione.

Infine, prepara un incident response plan documentato: chi contattare (hosting, sviluppatore, Sucuri per remediation), come identificare la data della compromissione (log di Wordfence o access log del server), quali backup ripristinare (trova il backup pulito più recente), e come comunicare con gli utenti se ci sono state fughe di dati. Testa il piano almeno una volta all’anno con un simulato incidente di sicurezza per assicurarti che funzioni quando serve davvero.

Lascia una risposta