Se il tuo sito WordPress è stato hackerato, o vedi redirect sospetti, popup, file estranei o un calo di traffico improvviso, ti serve un protocollo di rimozione malware rapido e ordinato. Qui trovi una checklist operativa per ripulire WordPress, recuperare la fiducia di utenti e motori di ricerca e chiudere la porta a nuove infezioni.
Tienila come una procedura da seguire nell’ordine, soprattutto quando sei sotto pressione e la tentazione è di saltare i passaggi.
Segnali tipici di infezione
- Redirect verso domini esterni, spesso solo su mobile o solo arrivando da Google.
- File PHP sconosciuti in
/wp-content/uploads/, nella root o dentro i plugin. - Avvisi da Google Search Console o dall’hosting.
- Comparsa di utenti admin che non hai creato tu.
- Picchi di CPU, invio di spam, comparsa di pagine doorway.
1) Metti in sicurezza e isola
- Attiva la modalità manutenzione o una password di accesso temporanea a livello server.
- Disattiva l’indicizzazione (noindex) temporaneamente, se il sito sta servendo contenuti malevoli.
- Backup completo di file e database: un’istantanea pre-pulizia che ti serve per l’analisi.
2) Cambia le credenziali e rigenera i SALTS
- Cambia subito le password di hosting, SFTP/SSH, database, WordPress e provider CDN/email.
- Rigenera SECURE_AUTH_KEY e le altre SALTS nel
wp-config.php, così invalidi tutte le sessioni aperte (compresa quella dell’attaccante).
3) Verifica e ripristina i file del core
Usa WP-CLI per controllare e ripristinare i core file:
|
1 2 |
wp core verify-checksums wp core download --force --skip-content |
Questo rimette un core WordPress pulito senza toccare wp-content. Il verify-checksums ti dice subito quali file del core sono stati alterati.
4) Scansione mirata di temi, plugin e uploads
Cerca i pattern malevoli più comuni con grep (o con un file manager, se preferisci):
|
1 |
grep -R --line-number -E "base64_decode|gzinflate|str_rot13|assert\(|passthru|shell_exec|system\(|eval\(" wp-content |
- Controlla
.htaccesseweb.configper redirect nascosti. - Elimina i PHP dentro uploads e in tutte le cartelle che dovrebbero contenere solo media.
- Reinstalla da sorgenti ufficiali tema e plugin critici, invece di ripararli a mano.
5) Pulizia del database
Il payload spesso non è solo nei file: gli attaccanti iniettano roba anche nel database.
- Cerca in
wp_optionsvalori sospetti (siteurl, home, active_plugins, cron). - Ispeziona
wp_postsper post e pagine con iframe o script offuscati. - Rimuovi i cron job malevoli e i webhook inseriti tramite le opzioni.
6) Utenti, ruoli e accessi
- Elimina gli admin sconosciuti e riduci i permessi dove sono eccessivi.
- Attiva la 2FA per amministratori ed editor.
7) Hardening dopo la pulizia
- Imposta permessi sicuri: 644 per i file, 755 per le directory.
- Blocca l’esecuzione di PHP in
/wp-content/uploads/con le regole del server. - Aggiungi in
wp-config.php:define('DISALLOW_FILE_EDIT', true); - Installa un WAF (Web Application Firewall, es. a livello edge/CDN) e limita i tentativi di login.
- Imposta un backup con la regola 3-2-1 e aggiornamenti automatici sicuri.
8) Test di integrità e ripristino online
- Riesegui la scansione di file e database e verifica che i redirect siano spariti.
- Controlla il sito da mobile e dai risultati di ricerca reali, non solo da desktop.
- Riabilita l’indicizzazione e rimuovi le regole temporanee che avevi messo.
9) SEO dopo l’hack: cosa fare
- In Google Search Console, sezione Problemi di sicurezza, richiedi la revisione dopo aver ripulito.
- Controlla sitemap, copertura ed eventuali URL doorway da rimuovere.
- Ripristina title e description alterati, poi rigenera la cache del CDN.
Checklist rapida di rimozione malware
- Isolamento del sito e backup forense.
- Password cambiate e SALTS rigenerati.
- Core pulito reinstallato, tema e plugin ripristinati da fonti ufficiali.
- Uploads senza PHP,
.htaccessripulito. - DB bonificato (options, posts, cron).
- Hardening con permessi corretti, WAF e 2FA.
- GSC: revisione inviata e monitoraggio attivo.
FAQ
Quanto tempo serve per ripulire un sito WordPress?
Dipende da quanto è estesa l’infezione. Un hack semplice si risolve di solito in poche ore; una compromissione profonda, con payload nel database e nel filesystem, richiede più tempo e più test.
Posso limitarmi a ripristinare un backup?
Solo se sei sicuro che quel backup sia pulito e successivo alla patch della vulnerabilità sfruttata. Altrimenti ti ritrovi la re-infezione nel giro di poco.
È meglio reinstallare da zero?
Spesso basta un ripristino controllato di core, tema e plugin da fonti ufficiali, con sanificazione di uploads e database. La reinstallazione totale è l’ultima spiaggia, non il primo passo.
Come evito che succeda di nuovo?
Aggiornamenti costanti, WAF, permessi corretti, 2FA, blocco del PHP in uploads e monitoraggio di file e log. La sicurezza è un processo, non una cosa che fai una volta e te ne dimentichi.
Come velocizzare WooCommerce senza rompere il checkout (guida tecnica)
Manutenzione WordPress e WooCommerce: piani e cosa includono davvero