I controlli trovano i problemi, i rimedi li risolvono. Un file infetto non si corregge mai a mano: si sostituisce con una copia buona. Ciò che un rimedio toglie dal sito va in quarantena, da dove si può recuperare, e alla fine il controllo del sito si rifà da solo. I rimedi li usano solo gli amministratori della dashboard.

Quale rimedio
| Il controllo segnala | Rimedio | Dove |
|---|---|---|
| Un file nuovo che non deve esserci, per esempio un PHP negli upload | Quarantena | «Quarantena» nella tabella dei file cambiati, oppure «Metti in quarantena» nel visore |
| Il core di WordPress alterato | Reinstalla il core | Visore, su un file del core |
| Un plugin di wordpress.org alterato | Reinstalla il plugin | Visore, su un file del plugin |
| Un file cambiato in un tema o in un plugin a pagamento | Ripristina da una copia | Visore, «Ripristina da questa copia» |
| Un file o una cartella cambiati da quando il codice era approvato | Ripristina da una versione | Visore, sezione Versioni |
| Tutto il codice da riportare a uno stato approvato | Torna a questa versione | Codice → Versioni → la versione |
| Molti file cambiati, oppure non si sa fin dove è arrivato un intruso | Ricostruisci il codice | Scheda → Rimedi |
| Un’intrusione, o una password che può essere uscita | Cambia i segreti | Scheda → Rimedi |
La quarantena
Un file o una cartella in quarantena escono dal sito e finiscono in /root/quarantena/<dominio>/, leggibile solo da root, con una scheda: percorso, motivo, data, proprietario e impronta sha256. Nella sezione Rimedi della scheda le voci sono elencate dalla più recente:
| Stato | Significato |
|---|---|
| in quarantena | Tolto dal sito. Rimetti lo riporta dov’era, con i permessi del resto del sito; poi il controllo si rifà. |
| copia per memoria | Il file nel sito è stato sovrascritto da una reinstallazione: qui c’è la versione di prima, per confrontarla. |
| rimesso | Già riportato nel sito. |
Il codice di prima di una ricostruzione o di un ritorno a una versione si recupera solo da shell. Le voci non si cancellano da sole: dopo 90 giorni le toglie una persona. wp-config.php non va mai in quarantena, perché il sito si fermerebbe: per password e chiavi c’è «Cambia i segreti».
Reinstallare core e plugin
Reinstalla il core riscarica WordPress da wordpress.org, stessa versione e stessa lingua. I file diversi dall’originale restano in quarantena come copia per memoria; quelli che nel core non esistono ci vengono spostati. Alla fine si verificano i checksum ufficiali.
Reinstalla il plugin fa lo stesso per un plugin di wordpress.org: la cartella attuale va in quarantena, arriva la stessa versione, si verificano i checksum e il plugin resta attivo se lo era. Se qualcosa non va, torna la cartella di prima. Per i plugin a pagamento non vale: si usa una copia.
Ripristinare da una copia
Nel visore, sotto un file o una cartella: si sceglie una copia (notturna o del sito) e si preme Ripristina da questa copia. Quello attuale va in quarantena. Conviene prima Confronta con la copia, per essere sicuri che sia di prima del problema.
Tornare a una versione
Se il codice era buono in una versione della storia, conviene partire da lì: nel visore, sezione Versioni, Ripristina rimette un file o una cartella com’era; nella pagina di una versione, Torna a questa versione rimette tutto il codice, con contenuti, database e wp-config.php di adesso. Vedi Le versioni del codice.
Ricostruire tutto il codice
Quando i file cambiati sono tanti, o non si sa fin dove è arrivata un’intrusione, Ricostruisci il codice rifà tutto:
- WordPress e i plugin di wordpress.org riscaricati, alle versioni attuali;
- plugin a pagamento, temi e gli altri file presi dalla copia scelta, che deve essere di prima del problema;
- upload e database restano quelli attuali.
Il sito resta in funzione: il codice nuovo si prepara accanto e sostituisce il vecchio in un attimo. Il codice di prima va in quarantena. Per confermare si scrive il dominio. Se il sito era bloccato, alla fine si riblocca con l’impronta del codice nuovo.
Cambiare i segreti
Cambia i segreti (per confermare si scrive il dominio) cambia in un colpo solo:
- chiavi e salt di WordPress: chi è collegato viene disconnesso, anche un intruso con una sessione aperta;
- la password del database;
- la password di anteprima generica, mostrata una volta sola alla fine del lavoro (quelle degli sviluppatori restano);
- le sessioni aperte e le application password, che vengono revocate.
Le password degli amministratori di WordPress non cambiano: si cambiano da Accessi, una per una, avvisando chi le usa.
Dopo un rimedio
La pagina del lavoro mostra il riepilogo e l’esito del controllo del sito, rifatto alla fine. L’impronta del codice si rinnova solo per i file rimessi e verificati: se il controllo segnala ancora altri file, vanno guardati uno per uno. Tutto resta nel Registro.
Da shell
site.sh quarantine esempio.it wp-content/uploads/2026/09/x.php --motivo "PHP negli upload"
site.sh quarantine-list esempio.it
site.sh unquarantine esempio.it 20260929-091233-5c2e81af
site.sh reinstall-core esempio.it
site.sh reinstall-plugin esempio.it contact-form-7
site.sh restore-file esempio.it wp-content/themes/tema/header.php a3f9c21e
site.sh rebuild-code esempio.it a3f9c21e
site.sh restore-version esempio.it <versione> wp-content/themes/tema/header.php
site.sh rollback-code esempio.it <versione>
site.sh rotate-secrets esempio.it
Le copie di un sito, con il loro codice, si elencano con nightly-backup.sh --site-list esempio.it.