
🔒 Sicurezza WordPress nel 2026: una guida completa alla protezione del sito
Un sito WordPress viene violato non perché il motore sia «pieno di buchi». Viene violato perché il proprietario ha rimandato l’aggiornamento di un plugin, ha impostato la password admin123 e ha lasciato xmlrpc.php aperto. Bot automatici scansionano la rete in continuazione.

A loro non importa se vendi candele fatte a mano o gestisci un negozio online. Troveranno e sfrutteranno la vulnerabilità. Bruteforce sul login, SQL injection, upload di shell tramite un plugin vulnerabile: tutto questo gira 24 ore su 24.
La buona notizia: puoi costruire una protezione di base in una serata, senza conoscenze tecniche approfondite. Di seguito trovi un insieme collaudato di misure, dall’installazione di un firewall all’hardening manuale del server. Tutto ciò che descriviamo qui lo applichiamo sui nostri progetti.
💡 Panoramica rapida:
- Installa un firewall: BBQ o Wordfence, la prima linea di difesa blocca la maggior parte degli attacchi prima ancora che raggiungano WordPress.
- Chiudi i punti di ingresso tipici: xmlrpc.php, REST API per utenti non autenticati, directory listing, l’editor file nel pannello di amministrazione.
- Configura gli aggiornamenti automatici per core, temi e plugin. Una versione obsoleta di un plugin è il principale vettore di attacco.
- Crea un backup che sia archiviato FUORI dal server. Senza backup, il ripristino dopo una violazione significa reinstallare WordPress da zero.
- Attiva l’autenticazione a due fattori per tutti gli amministratori. Una password si può indovinare; un secondo fattore no.
Dove colpiscono per primi: vettori di attacco tipici
Molti immaginano un hacker come qualcuno davanti a un terminale che prova a indovinare manualmente la password di amministratore. La realtà è più banale: praticamente tutti gli attacchi sono condotti da bot che seguono uno script. Cercano vulnerabilità note in plugin e temi, bussano a xmlrpc.php, scansionano /wp-content/uploads/ alla ricerca di file PHP eseguibili.
I principali vettori di attacco contro WordPress:
Plugin e temi obsoleti. Secondo i report Sucuri, circa il 40% dei siti violati utilizzava una versione obsoleta del CMS, di un plugin o di un tema al momento dell’infezione. Gli sviluppatori chiudono i buchi con le patch, ma solo se applichi quelle patch.
Password deboli. Gli attacchi di bruteforce provano decine di migliaia di combinazioni al minuto. Una password di 6 caratteri senza caratteri speciali viene violata all’istante.
Hosting insicuro. L’hosting condiviso economico lesina sull’isolamento degli account: se un sito vicino sullo stesso server viene violato, l’attacco può propagarsi al tuo.
Permessi di scrittura eccessivi. Quando il server web può scrivere su qualsiasi file, una shell caricata attraverso un buco ottiene il pieno controllo del sito.
Capire questi vettori è metà della difesa. L’altra metà è l’azione concreta.
Livello 1: protezione rapida da attivare in mezz’ora
Questo è il punto da cui dovresti iniziare oggi. Ogni azione richiede pochi minuti, non necessita di modifiche al codice e non romperà il sito.
Installa un firewall: BBQ Firewall
BBQ Firewall è un plugin di Jeff Starr che funziona secondo il principio «imposta e dimentica». Nessuna impostazione, nessuna interferenza con .htaccess o il database. Blocca semplicemente le richieste URL malevole prima che raggiungano WordPress: eval(), base64_decode, stringhe eccessivamente lunghe, tentativi di injection.
Il plugin pesa meno di 10 KB e non genera carico. Allo stesso tempo, intercetta SQL injection, XSS, upload di file eseguibili e attacchi tramite referrer «malevoli».
Nella pratica, BBQ viene spesso installato IN AGGIUNTA a Wordfence o Solid Security; risolvono problemi diversi e non entrano in conflitto. Un firewall a livello di richiesta più un plugin di sicurezza completo offrono una difesa a strati.
Attiva l’autenticazione a due fattori
Una password può essere indovinata, intercettata o acquistata in un archivio di database trapelati. Un secondo fattore, un codice monouso da un’app authenticator, vanifica tutta la matematica degli attacchi di bruteforce.
WordPress non ha la 2FA integrata. La strada più semplice è installare Solid Security (ex iThemes Security) o Wordfence. Entrambi includono la 2FA nella versione gratuita. Dopo l’attivazione, vai su Sicurezza → Impostazioni → Autenticazione a due fattori e attivala per il ruolo Amministratore.
Questi stessi plugin chiudono una dozzina di altre vulnerabilità in automatico:
Solid Security: cambia l’URL di login (
/wp-admin→ il tuo slug univoco), imposta un limite ai tentativi di accesso, scansiona i file alla ricerca di modifiche, blocca gli IP dopo una serie di login falliti, verifica plugin e temi per vulnerabilità note.Wordfence: Web Application Firewall con regole aggiornate automaticamente, scanner malware, protezione dal bruteforce, monitoraggio del traffico in tempo reale. È particolarmente indicato per pulire un sito già violato: trova backdoor, file del core modificati, spam nascosto.
Te ne serve solo UNO. Sui nostri progetti installiamo Wordfence + BBQ: il primo fornisce un WAF e uno scanner, il secondo taglia fuori le richieste spazzatura prima ancora che si avvicinino.
Disabilita xmlrpc.php
XML-RPC è un’interfaccia per il lavoro remoto con WordPress tramite app mobile e trackback. Oggi la stragrande maggioranza dei siti non ne ha bisogno, eppure resta uno dei punti più attaccati: i bot usano xmlrpc.php per fare bruteforce sulle password e condurre attacchi DDoS.
Puoi disabilitarlo in due modi. Il modo rapido, via plugin: Solid Security lo fa con un clic. Il modo corretto, a livello server, in .htaccess:
1 <Files xmlrpc.php> 2 Order Deny,Allow 3 Deny from all 4 </Files>
Aggiungi questo blocco al file .htaccess nella root e dimenticati di xmlrpc. Se usi l’app mobile di WordPress o servizi esterni che necessitano di XML-RPC, verifica prima se funzionano senza. Nel 2026, le alternative, le REST API con autenticazione, coprono quasi tutti gli scenari.
Disabilita il directory listing
Apri вашсайт.com/wp-content/uploads/ nel tuo browser. Se vedi un elenco di file, hai un problema. Il directory listing mostra la struttura del tuo sito a chiunque voglia guardare.
La soluzione: una riga in .htaccess:
1 Options -Indexes
Aggiungi anche un index.php vuoto in ogni directory sospetta: /wp-content/uploads/, temi, plugin che ne sono sprovvisti.
Disabilita l'editor di file nel pannello di amministrazione
WordPress include la possibilità di modificare i file .php di temi e plugin direttamente dal pannello di amministrazione: Aspetto → Editor file del tema e Plugin → Editor file dei plugin. Comodo, finché qualcuno non autorizzato non accede al pannello. A quel punto diventa uno strumento già pronto per caricare una shell.
Aggiungi una costante a wp-config.php:
1 define('DISALLOW_FILE_EDIT', true);
Tutto qui. L'editor scompare dal pannello di amministrazione. Per modificare i file usa FTP/SFTP, meno comodo, ma più sicuro.
Livello 2: hardening manuale di WordPress
Le misure seguenti vanno un po' più a fondo: richiedono la modifica dei file di configurazione e la comprensione della struttura del server. Il risultato è un sito che i bot ignorano perché non ci vedono WordPress.
Aggiornare i salt di sicurezza
Salt, chiavi di sicurezza e salt, otto righe in wp-config.php che cifrano i cookie di autenticazione. Modificarli disconnette immediatamente tutti, incluso un potenziale malintenzionato con una sessione rubata.
Vai su api.wordpress.org/secret-key/1.1/salt/, copia il blocco generato e sostituisci la sezione corrispondente in wp-config.php. Ci vuole un minuto. Fallo ogni volta che sospetti una compromissione.
Cambiare il prefisso delle tabelle del database
Di default tutte le tabelle di WordPress si chiamano wp_posts, wp_users e wp_options. Le SQL injection sono spesso costruite su misura per il prefisso standard.
Su una nuova installazione, specifica un prefisso non standard in wp-config.php:
1 $table_prefix = 'wp83x_';
Per un sito esistente cambiarlo è più complesso: devi rinominare le tabelle nel database e aggiornare i valori in usermeta e options. Non tentare senza solide competenze di phpMyAdmin e SQL, il rischio di mandare offline il sito è troppo alto.
Spostare wp-config.php sopra la root web
wp-config.php contiene la password del database e le chiavi di cifratura. Se il server web lo serve accidentalmente come testo semplice, cosa che succede durante un aggiornamento PHP fallito, l'aggressore ottiene tutto.
Soluzione: sposta wp-config.php di un livello sopra la directory root del sito, per esempio da /public_html/ alla cartella home dell'hosting. WordPress cerca automaticamente il file di configurazione nella directory superiore, il codice non si romperà.
Nascondere la versione di WordPress
Il generatore <meta name="generator" content="WordPress X.X.X"> nel sorgente della pagina è un regalo per i bot. Incrociano la versione con un database di vulnerabilità note e colpiscono con precisione.
Rimuovi il generatore tramite functions.php:
1 // Remove the WordPress generator meta tag from the page source code 2 function no_generator() { 3 return ''; 4 } 5 add_filter('the_generator', 'no_generator');
La funzione no_generator() restituisce una stringa vuota invece dell'output standard della versione. Il filtro the_generator intercetta l'output del meta tag e tutte le sue varianti, per feed, RSS e REST API.
Elimina anche readme.html e liesmich.html dalla root dell'installazione, anch'essi espongono la versione. Dopo un aggiornamento di WordPress questi file possono ricomparire, controlla una volta al mese.
Configurare gli header di sicurezza HTTP
Gli header di risposta HTTP dicono al browser come gestire i contenuti. Header di sicurezza configurati correttamente bloccano clickjacking, XSS e spoofing dei contenuti.
Un set minimo per WordPress, aggiungi queste righe a .htaccess:
1 Header set X-Frame-Options "SAMEORIGIN" 2 Header set X-Content-Type-Options "nosniff" 3 Header set Referrer-Policy "strict-origin-when-cross-origin" 4 Header set X-XSS-Protection "1; mode=block"
Il plugin HTTP Headers ti permette di fare la stessa cosa dal pannello di amministrazione se preferisci non toccare la configurazione del server.
Per una configurazione avanzata usa la Content Security Policy. Ma attenzione: una CSP errata rompe il pannello di amministrazione, il caricamento dei font e le funzionalità dei plugin. Rilasciala gradualmente, partendo dalla modalità Content-Security-Policy-Report-Only.
Limitare i permessi dei file
I permessi, l'ultima linea di difesa. Se un aggressore carica un file ma non può eseguirlo, l'attacco si ferma.
Regole di base:
- Directory: 755, il proprietario legge, scrive, esegue; gruppo e altri leggono ed eseguono.
- File: 644, il proprietario legge e scrive, gli altri solo leggono.
- wp-config.php: 400, solo il proprietario legge.
- .htaccess: 444, sola lettura per tutti, se WordPress non lo modifica automaticamente.
Evita assolutamente il 777. Sì, alcuni plugin chiedono 777 su wp-content/uploads/. Non concederlo. 755 sulla cartella e 644 sui file all'interno sono sufficienti per i caricamenti dei media.
Cosa fare se il sito è già stato violato
Una violazione si scopre in modi diversi: un reindirizzamento a un casinò, invio di spam, un banner «Questo sito potrebbe essere violato» nei risultati di ricerca Google, una segnalazione dall'host. La sequenza di azioni:
Cambia immediatamente tutte le password: amministratore WordPress, FTP/SFTP, database, pannello di controllo hosting. Inizia da quest'ultimo. Se l'hacker è nel pannello di hosting, creerà semplicemente un nuovo amministratore.
Ripristina il sito da un backup fatto PRIMA della violazione. Un backup recente fatto dopo la compromissione contiene molto probabilmente una backdoor. Se non c'è un backup, passo successivo.
Installa Wordfence ed esegui una scansione completa. Il plugin troverà file core modificati, codice sospetto, backdoor nascoste. Elimina tutto ciò che lo scanner ha segnalato, poi sostituisci il core di WordPress con una copia fresca: il pulsante «Reinstalla» sotto Bacheca → Aggiornamenti.
*Controlla
wp-content/uploads/per file.php.* Non dovrebbero essercene. Qualsiasi.phpnella cartella uploads è quasi certamente una shell.
Guarda il video qui sopra, analizza gli errori tipici di sicurezza WordPress e come risolverli, dalle password deboli ai permessi dei file errati.

- Collega un monitoraggio esterno. Sucuri, un servizio cloud con WAF e team di risposta. Il WAF filtra il traffico prima che raggiunga il server. In caso di violazione, il team Sucuri pulisce il sito nel giro di ore. I prezzi partono da $199/anno per il piano base con pulizia e monitoraggio. Non è gratuito, ma quando un sito genera ricavi, il fermo macchina costa di più.
Assicurati di registrare il sito su Google Search Console. Se Google rileva codice malevolo, riceverai una notifica prima che il sito sparisca dai risultati di ricerca.
Protezione contro i ransomware: perché i backup risolvono tutto

Un ransomware cifra i file del sito e chiede un riscatto. I siti WordPress sono un bersaglio frequente: ordini, database clienti, contenuti. Perdere tutto da un giorno all'altro è uno scenario reale senza un backup.
Tre regole:
- Backup fuori dal server. Cloud o un FTP separato. UpdraftPlus e Duplicator automatizzano lo scarico.
- Firewall e scanner. Wordfence + BBQ bloccano il caricamento di file malevoli già a livello di richiesta.
- Solo fonti ufficiali. La directory WordPress.org e i siti degli sviluppatori con una reputazione. Niente temi "gratis" presi dai torrent.
Monitoraggio automatico dell'integrità dei file
Protezione lato server, non un'azione una tantum. Assembla i controlli in uno script shell su cron, una volta al giorno, risultati via email:
1 SITE_ROOT="/absolute/path/to/public_html" 2 3 find "$SITE_ROOT" -mtime -1 -name "*.php" \ 4 -printf '%TY-%Tm-%Td %TT\t%p\n' >> /tmp/file-changes.log 5 6 find "$SITE_ROOT" -mtime -7 -name "*.php" \ 7 | xargs grep -l -i "eval\|base64_decode\|iframe\|file_get_contents" \ 8 >> /tmp/suspicious-code.log 9 10 find "$SITE_ROOT/wp-content/uploads" -name "*.php" -print \ 11 >> /tmp/php-in-uploads.log 12 13 find /home -type d -perm 0777 >> /tmp/perms.log 14 find /home -type f -perm 0777 >> /tmp/perms.log 15 16 mailx -s "Webserver File Audit $(date +%F)" admin@example.com \ 17 < /tmp/suspicious-code.log
Lo script gira una volta al giorno via cron. Il primo blocco find -mtime -1 mostra i file PHP modificati nelle ultime 24 ore, il principale rilevatore di intrusioni. Il secondo cerca firme da shell: eval, base64_decode, iframe nascosti. Il terzo intercetta PHP nella cartella uploads, dove il PHP legittimo non dovrebbe mai trovarsi. Il quarto trova file e cartelle con permessi 777. Il risultato viene inviato a email. Il monitoraggio proattivo coglie un'intrusione in fase iniziale, prima che Google se ne accorga e bandisca il sito dai risultati di ricerca.
Sucuri: un firewall cloud per quando non hai tempo di smanettare
Come funziona: il traffico passa attraverso il proxy cloud di Sucuri con un WAF, le richieste malevole vengono bloccate prima di raggiungere l'hosting. Il sito si carica più velocemente grazie alla CDN. Capacità chiave: un WAF con firme in tempo reale, protezione DDoS, pulizia automatica del malware.
I piani partono da $199/anno. Non esiste una versione gratuita, ma il plugin scanner di Sucuri controlla i file alla ricerca di modifiche senza il WAF. Per un sito commerciale, è un investimento giustificato. Per un blog personale, Wordfence + BBQ sono sufficienti.
⁉️🤔 FAQ
WordPress di per sé è sicuro?
Il core di WordPress è revisionato da centinaia di sviluppatori e auditor di sicurezza. Il problema non è il core; il problema sono plugin obsoleti, temi da fonti non affidabili e password come
123456. Aggiornamenti regolari più un firewall di base forniscono una protezione sufficiente per la maggior parte dei siti.
Posso fare a meno dei plugin di sicurezza?
Sì, se sei disposto a configurare manualmente un firewall a livello server: iptables, mod_security, firewall 7G/8G in
.htaccess, tracciare le CVE per ogni plugin e scrivere script cron per il monitoraggio. Per tutti gli altri, installare Wordfence o Solid Security richiede un'ora contro decine di ore di lavoro manuale.
Gli aggiornamenti sono necessari se ho già un firewall?
Sì, assolutamente. Un firewall blocca gli attacchi dall'esterno, ma se è installato un plugin con una vulnerabilità nota, prima o poi si troverà un vettore che il firewall non intercetta. Aggiornare tutti i componenti di WordPress è la base senza la quale le altre misure funzionano a metà.
Quale plugin di sicurezza dovrei scegliere?
Per una protezione minima: BBQ Firewall, blocca le richieste URL malevole, configurazione zero. Per una protezione completa: Wordfence, WAF, scanner, 2FA, protezione brute force, tutto nella versione gratuita. La combinazione BBQ + Wordfence copre entrambi i livelli senza conflitti.
Cosa fare con la REST API, dovrei disabilitarla?
La REST API è necessaria a WordPress per l'editor a blocchi Gutenberg, per diversi plugin e per le integrazioni esterne. Disabilitarla completamente rompe il pannello di amministrazione. Invece, restringi l'accesso: lascia solo gli endpoint pubblici per gli utenti non autenticati. Il plugin REST API Toolbox ti permette di configurare l'accesso in modo flessibile senza interventi chirurgici.
Ogni quanto dovrei scansionare il sito alla ricerca di virus?
Automaticamente, ogni giorno tramite script cron: controllo dei file modificati, ricerca di
.phpnella cartella uploads. Manualmente, una volta al mese: accedi a Wordfence, esegui una scansione completa, controlla l'elenco dei plugin per individuare quelli abbandonati. Nessun aggiornamento da oltre un anno, elimina o sostituisci.
Posso perdere il posizionamento su Google a causa di un hack?
Sì, e rapidamente. Google scansiona i siti alla ricerca di codice malevolo e segnala quelli infetti con un avviso nei risultati di ricerca. Se l'hack non viene risolto entro poche settimane, il sito viene deindicizzato. Registra il tuo sito su Google Search Console e riceverai una notifica sul problema non appena viene rilevato.
Cambiare hosting aiuta a prevenire gli hack?
In parte. Un hosting di qualità aggiunge i propri livelli di protezione: isolamento degli account, monitoraggio di rete, aggiornamento automatico di PHP. Ma l'hosting non protegge da un plugin vulnerabile che hai installato tu stesso, né dalla password
qwerty. La sicurezza è una torta a strati: hosting più aggiornamenti più firewall più diritti di accesso più backup.
Sicurezza WordPress: da dove iniziare oggi
La regola principale della sicurezza WordPress è non cercare di affrontare tutto in una volta sola. Inizia con tre passaggi:
- Se non c'è un firewall, installa BBQ Firewall. Un minuto.
- Se non ci sono backup esterni al server, configura UpdraftPlus con caricamento su cloud. Dieci minuti.
- Se la 2FA non è attiva per gli amministratori, attivala tramite Wordfence. Cinque minuti.
Poi torna all'elenco qui sopra: disabilita xmlrpc, aggiorna i salt, disabilita l'editor dei file, configura gli header di sicurezza. Una voce al giorno e in una settimana il tuo sito sarà un ordine di grandezza più protetto di quanto non fosse ieri.
Quali misure di sicurezza sono già attive sul tuo sito? Fammelo sapere nei commenti, sono curioso di confrontare gli approcci.



