Il mio sito WordPress è stato hackerato: cosa fare (guida pratica)

Il mio sito WordPress è stato hackerato: cosa fare

Ti è mai capitato di entrare nel tuo sito e trovare qualcosa che non dovrebbe esserci?

Redirect strani, pagine mai create, link sospetti… o peggio: una homepage completamente modificata con scritto “hacked by…”.

Se stai cercando “il mio sito WordPress è stato hackerato, cosa faccio”, la risposta è questa: non andare nel panico, ma muoviti subito.

Nella maggior parte dei casi il sito si recupera. Ma devi agire con metodo.


Come capire se il sito WordPress è stato hackerato

I sintomi possono essere molto diversi, a seconda di quanto è invasivo l’attacco.

Il caso più evidente è il defacement: apri la home e trovi un contenuto completamente diverso, spesso firmato dall’hacker.

Ma spesso è più sottile:

  • Pagine o articoli strani visibili online ma non nel backoffice
  • Link spam inseriti nei contenuti
  • Redirect verso siti di casinò, farmaci o contenuti dubbi
  • Accessi admin sconosciuti
  • Sito improvvisamente lento o instabile

In alcuni casi il comportamento è difficile da replicare: gli attacchi più evoluti usano randomizzazione e timing, quindi magari il redirect succede solo ogni tanto.

Riassumendo: segnali tipici

  • Homepage modificata
  • Redirect sospetti
  • Contenuti mai creati
  • Link spam
  • Utenti admin sconosciuti
  • File modificati senza motivo
  • Avvisi di Google (“sito compromesso”)

Se riconosci uno di questi segnali, è molto probabile che il sito sia stato compromesso.


1. Blocca subito i danni

Prima regola: evita che la situazione peggiori.

Meglio un sito offline per qualche ora che utenti esposti a contenuti malevoli.

Cosa fare subito:

  • Attiva una modalità manutenzione
  • Oppure blocca completamente l’accesso pubblico

Se hai accesso al server puoi farlo così:

  • via .htaccess, consentendo accesso solo al tuo IP
  • tramite pannello hosting (molti hanno modalità maintenance)

Cambia tutte le password

Non solo WordPress.

  • Admin e utenti con privilegi
  • FTP / SFTP
  • Database
  • Hosting

Rimuovi eventuali utenti sospetti.

Disconnetti tutti gli utenti attivi

Puoi farlo:

  • Cambiando la password (WordPress invalida le sessioni)
  • Usando plugin di sicurezza con funzione di logout globale
  • puoi farlo anche da wp-config.php, ed è uno dei metodi più “puliti” quando vuoi forzare il logout globale senza passare dal backend (magari compromesso).

Metodo via wp-config.php

WordPress gestisce le sessioni tramite le chiavi di sicurezza. Se le cambi, tutte le sessioni attive diventano immediatamente invalide.

Nel file wp-config.php trovi qualcosa del genere:

define('AUTH_KEY',         '...');
define('SECURE_AUTH_KEY', '...');
define('LOGGED_IN_KEY', '...');
define('NONCE_KEY', '...');
define('AUTH_SALT', '...');
define('SECURE_AUTH_SALT', '...');
define('LOGGED_IN_SALT', '...');
define('NONCE_SALT', '...');

Cosa fare:

Risultato:

  • Tutti gli utenti vengono disconnessi
  • Tutti i cookie di login diventano invalidi
  • Eventuali sessioni compromesse vengono tagliate fuori

2. Fai un backup completo (anche se infetto)

Sembra controintuitivo, ma è fondamentale.

Questo backup ti serve per:

  • Analizzare l’attacco
  • Recuperare contenuti
  • Ripristinare parti sane del sito

Salva:

  • Tutti i file
  • Il database

È la tua rete di sicurezza.


3. Individua da dove è entrato l’attacco

Se non capisci la causa, rischi di risolvere oggi e ritrovarti punto e a capo domani.

Le cause più comuni:

  • Plugin o temi non aggiornati
  • Plugin nulled/pirati
  • Password deboli
  • WordPress obsoleto
  • Vulnerabilità note

Strumenti utili

  • Scanner WordPress (Wordfence, Sucuri)
  • Scanner lato server (Imunify, se disponibile)
  • Controllo manuale dei file

Occhio a codice PHP sospetto:

  • base64_decode
  • eval()
  • gzinflate

Spesso sono segnali di codice malevolo.

Verifica la presenza di file con estensione .php dentro la cartella upload, cartella che dovrebbe ospitare solamente media.


4. Pulisci il sito (la fase più delicata)

Qui si decide tutto.

Hai due approcci:

Approccio consigliato: ripristino pulito

  • Reinstalla WordPress da zero
  • Reinstalla solo plugin e temi sicuri
  • Importa i contenuti dal database (dopo verifica)

È il metodo più sicuro.


Approccio manuale (più rischioso, ma più veloce se sai cosa stai facendo)

Se non vuoi fare un ripristino completo, puoi intervenire manualmente. Ma attenzione: è facile lasciare qualcosa indietro.

Un buon compromesso è questo:

sostituire completamente i file core di WordPress con una versione pulita

In pratica:

  • Scarica la stessa versione di WordPress (potrai poi aggiornarlo una volta finito il ripristino) dal repository ufficiale
  • Sovrascrivi completamente:
    • /wp-admin/
    • /wp-includes/
    • tutti i file nella root

⚠️ Escludi:

  • wp-config.php
  • .htaccess
  • la cartella /wp-content/

Perché farlo

In questo modo:

  • Elimini in blocco eventuali file core infetti
  • Riduci drasticamente il perimetro di controllo
  • Puoi concentrarti solo su /wp-content/, dove si annidano la maggior parte delle infezioni

A questo punto controlla solo il “cuore” del sito

Focalizzati su:

  • /wp-content/plugins/
  • /wp-content/themes/
  • /wp-content/uploads/ (spesso usata per nascondere backdoor)

Cerca:

  • File PHP sospetti in cartelle dove non dovrebbero esserci
  • Codice offuscato (base64_decode, eval, ecc.)
  • Plugin o temi che non riconosci
Sostituendo tutti i file del Core di WordPress, puoi concentrare i tuoi sforzi solo su wp-config.php e la cartella wp-content che contiene tutte le personalizzazioni.

Attenzione

Questo approccio è efficace, ma:

  • non tocca il database
  • non elimina eventuali backdoor nei contenuti
  • non risolve la vulnerabilità che ha causato l’attacco

Quindi va sempre accompagnato da:

  • Messa in sicurezza
  • Controllo del database
  • Verifica manuale (puoi anche effettuare ricerca tramite ssh di pattern di codice sospetto)
  • Aggiornamenti

5. Controlla il database

Molti attacchi non si limitano ai file.

Verifica:

  • Tabelle wp_options (siteurl, home)
  • Post e pagine con contenuti strani
  • Script nascosti nei contenuti
  • Utenti admin non autorizzati

Pulisci tutto ciò che non riconosci.


6. Aggiorna tutto

Una volta ripulito:

  • Aggiorna WordPress
  • Aggiorna plugin e temi
  • Elimina tutto ciò che non usi

Meno codice = meno vulnerabilità.


7. Metti in sicurezza il sito

Se non cambi qualcosa, succederà di nuovo.

Azioni consigliate:

  • Firewall applicativo (WAF)
  • Limitazione tentativi di login
  • Autenticazione a due fattori (2FA)
  • Disabilitare modifica file da backend
  • Permessi corretti su file e cartelle
  • Backup automatici

8. Controlla Google e blacklist

Verifica se il sito è stato segnalato:

  • Google Search Console
  • Safe Browsing

Se necessario, richiedi una revisione dopo la pulizia.


9. Monitora nei giorni successivi

Non considerarlo finito subito.

Controlla:

  • File modificati
  • Nuovi utenti
  • Redirect sospetti
  • Performance anomale

Se qualcosa ricompare, significa che non hai eliminato la causa.


Conclusione

Un sito WordPress hackerato non è raro. E nella maggior parte dei casi non è nemmeno “colpa di hacker geniali”.

È quasi sempre una porta lasciata aperta: un plugin vecchio, una password debole, un aggiornamento saltato.

La differenza la fa come reagisci:

  • velocità
  • metodo
  • pulizia fatta bene

Perché sistemare è importante.
Ma non farti bucare di nuovo lo è ancora di più.


Bonus tip: e se il problema non fosse (solo) WordPress?

A volte continui a ripulire il sito… ma il problema torna.

E qui c’è una verità scomoda: non sempre la colpa è del tuo WordPress.

Soprattutto quando si utilizzano hosting molto economici o poco isolati, le vulnerabilità possono essere a monte, a livello di server.

In questi casi:

  • Un altro sito sullo stesso server può essere compromesso
  • Il server può avere software non aggiornato
  • Possono esserci configurazioni insicure (permessi, isolamento utenti, ecc.)

Come capirlo

Un segnale tipico è questo:

  • Ripulisci tutto correttamente
  • Aggiorni plugin e password
  • Dopo poco… il problema si ripresenta

Se succede, è il momento di cambiare approccio.


Hai due strade

1. Gestisci tu il server

Qui il livello si alza parecchio.

Devi verificare:

  • Aggiornamenti di sicurezza (OS, PHP, database, web server)
  • Configurazione dei permessi
  • Isolamento tra utenti e siti
  • Log di sistema (accessi sospetti, script eseguiti, cron)

In pratica: non stai più “pulendo WordPress”, stai facendo hardening del server.


2. Sei su hosting condiviso

Qui la soluzione è spesso più semplice (e brutale):

cambia hosting

Se il provider non garantisce:

  • isolamento tra account
  • aggiornamenti costanti
  • sistemi di sicurezza attivi

puoi ripulire il sito quanto vuoi… ma resterai esposto.


In sintesi

Se il problema torna senza una causa evidente:

non guardare solo il sito, guarda dove è ospitato.

Perché a volte la porta aperta non è dentro WordPress.
È proprio il palazzo.


Serve una mano?

Se sei arrivato fin qui, probabilmente il tuo sito WordPress è già stato compromesso… oppure hai il sospetto che qualcosa non vada.

La verità è che ogni caso è diverso:

  • a volte basta una pulizia veloce
  • altre volte ci sono backdoor nascoste
  • in alcuni casi il problema è proprio il server

Se non sei sicuro di aver risolto tutto, o vuoi evitare di perderci ore (o giorni), posso darti una mano.

Analizzo il sito, individuo il punto di ingresso e ti aiuto a:

  • ripulire completamente l’infezione
  • mettere in sicurezza WordPress
  • evitare che succeda di nuovo

Senza interventi inutili, senza perdere tempo.

Contattami qui o richiedi una consulenza.

Hosting? Io uso VHosting da anni e mi trovo benissimo. Ho anche un’affiliazione attiva, quindi se acquisti tramite il mio link, io guadagno qualcosa, ma per te il prezzo non cambia. Lo consiglio perché lo uso ogni giorno e ne sono soddisfatto!