WordPress non è insicuro. I siti che lo usano vengono compromessi per quattro motivi, in questo ordine di frequenza, e nessuno di essi è un difetto di WordPress stesso.
1. Un plugin che non è stato aggiornato
Di gran lunga la causa maggiore. Viene pubblicata una vulnerabilità, in pochi giorni uno scanner trova ogni sito ancora fermo alla vecchia versione, e il resto è automatico.
- Accenda gli aggiornamenti automatici per i plugin di cui si fida.
- CANCELLI ciò che non usa. Un plugin disattivato resta un file raggiungibile direttamente.
- Controlli se un plugin è stato abbandonato: «ultimo aggiornamento 3 anni fa» è la decisione di smettere di usarlo.
2. Una password usata anche altrove
Trapelata da un sito che non c'entra nulla e poi provata qui. Il secondo fattore rende la fuga irrilevante, ed è per questo che vale più di qualsiasi plugin.
3. Caricamenti che vengono eseguiti
Se un file messo in wp-content/uploads può girare come PHP, un modulo di caricamento è una via d'ingresso. La chiuda sul server, non con un plugin.
location ~* /wp-content/uploads/.*\.(php|phtml|phar)$ {
deny all;
}
4. Modificare i file dalla bacheca
L'editor incorporato trasforma una sessione di amministratore rubata in codice a piacere sul suo server. Quasi nessuno lo usa di proposito.
define('DISALLOW_FILE_EDIT', true);
Altre tre che non costano nulla
- Sposti wp-config.php sopra la radice web, oppure la neghi esplicitamente. Contiene la password del database.
- Spenga XML-RPC a meno che qualcosa non lo richieda: è un bersaglio abituale della forza bruta.
- Nasconda la versione. Non è sicurezza, ma la toglie dalle ricerche di «siti con la versione X».
Dopo qualunque compromissione, cambi i sali in wp-config.php. Invalida ogni sessione, compresa quella dell'aggressore, ed è il passo che la maggior parte delle bonifiche dimentica.