Il Database di WordPress rappresenta il cuore dell’intero blog e per questo motivo rappresenta un target per i pirati informatici, i quali tramite l’utilizzo di codici automatici chiamati “SQL injections” potrebbero entrare in possesso di informazioni sensibili e quindi compromettere definitivamente il vostro sito web.
In una installazione pulita di WordPress, il prefisso delle tabelle di default è “wp_” pertanto, mantenere inalterato questo valore, rappresenta un rischio per la sicurezza di WordPress, dal momento che un possibile malintenzionato potrebbe sferrare il suo attacco conoscendo il prefisso delle tabelle. Per questo motivo, quando si installa WordPress, utilizzando la procedura guidata è bene modificare il campo di default, qualora abbiate dimenticato di farlo, non disperatevi siete ancora in tempo!
Nonostante possiate utilizzare Acunetix WP Security, un plugin per eseguire questo processo automaticamente, personalmente vi consiglio di seguire la procedura manuale che descriverò in questo articolo. Considerando che si tratta di operazioni delicate vi raccomando di prestare la massima attenzione!
Eseguire il backup del database
Prima di procedere con la lettura dell’articolo vi consiglio vivamente di eseguire un Backup di tutte le tabelle del database, potete farlo manualmente tramite la funzione di esportazione inclusa in phpMyAdmin, oppure utilizzare un plugin come descritto in un mio articolo precedente. Una volta che avete eseguito il backup dovrete mettere in pausa il blog, potete utilizzare il plugin Site Maintenance in questo modo non perderete ranking nei motori di ricerca.
Modificare il file config.php
Iniziamo con le modifiche vere e proprie. Aprite il file config.php che trovate nella directory principale di WordPress sul vostro server. Cambiate il prefisso wp_ con qualcosa del tipo c3e5_ potete scegliere qualsiasi combinazione casuale di lettere e numeri.
Cercate la riga $table_prefix = ‘wp_’; e sostituitela con $table_prefix = ‘c3e5_‘; in questo esempio abbiamo utilizzato il prefisso c3e5_ voi dovrete sostituire wp_ con il vostro prefisso. A questo punto, se avete messo in pausa il blog, potete anche caricare il file nel server, altrimenti non fatelo adesso.
Rinominare le tabelle di WordPress
Andate in phpMyAdmin e visualizzate il database della vostra installazione di WordPress. Dobbiamo cambiare adesso tutti i nomi delle tabelle da wp_ a c3e5_ per fare questo dovremo utilizzare una query SQL, cliccando sul pulsante SQL inserite il comando del tipo:
RENAME TABLE wp_comments TO c3e5_comments;
Una volta premuto sul pulsante “Esegui”. Il database cambierà immediatamente il nome alla tabella e vi dirà che l’operazione è stata eseguita con successo. Nell’esempio di sopra abbiamo cambiato il prefisso della tabella comments. A questo punto non rimane che ripetere la stessa operazione per tutte le altre tabelle, sia quelle del core di WordPress che quelle di eventuali plugins. Le tabelle standard di WordPress sono 11, di seguito elenco tutte le righe da inviare una per una per il cambio del prefisso (fate attenzione che ho reinserito anche la precedente riga che forse avete già inviato). Ricordatevi di modificarle con il prefisso che avete scelto nel file wp-config.php nel mio esempio ho utilizzato c3e5_
Ulteriori modifiche alla tabella wp-options
Bisogna ora modificare qualcosa nella tabella c3e5_options. Al suo interno sono infatti contenute delle sottocartelle alle quali deve essere cambiato il prefisso. Per fare questo potete utilizzare nuovamente una Query SQL quale:
SELECT * FROM `c3e5_options` WHERE `option_name` LIKE '%wp_%'
Altrimenti potete utilizzare il metodo manuale, tornando alla visualizzazione del vostro database, cliccate sul pulsante “Mostra” relativo alla tabella c3e5_options e scorrete l’elenco dei dati fino alla riga wp_user_roles quindi cliccate su “Modifica” (icona matita) e cambiate il nome da wp_user_roles a c3e5_user_roles e cliccate su “Esegui”.
Ulteriori modifiche alla tabella wp_usermeta
Le voci da cambiare in questa tabella potrebbero essere numerose, ma anche in questo caso possiamo utilizzare una scorciatoia, la query che dovete utilizzare è:
SELECT * FROM `c3e5_usermeta` WHERE `meta_key` LIKE '%wp_%'
Fatte tutte queste modifiche avete finito! Recatevi nel vostro blog e verificate che tutto funzioni come sempre. Spero che questo articolo sia stato utile per rendere il vostro blog un po’ più sicuro.
Sonia dice
Grazie Vincenzo avrei 2 domande da fare… Questa procedura è ancora attuale?
Poi volevo chederti se cambiando il prefisso da
wp_comments; per esempio, a c3e5wp_comments;
insewrendo anche wp_ dopo il prefisso personalizzato,
è funzionale comunque ai fini della sicurezza contro eventuali tentativi di attacchi? oppure è necessario omettere proprio wp_ nella tabella?
grazie
Sonia
Vincenzo dice
Ciao Sonia si questa procedura dovrebbe ancora funzionare, tuttavia non ho avuto modo di testarla recentemente. Ti consiglio di eseguire un backup del tatabase prima di eseguire le modifiche. Puoi modificare la tabella con c3e5wp_ lasciando la voce wp senza problemi, sarai comunque protetta da eventuali attacchi.
vex dice
ciao vincenzo, grazie per il prezioso articolo; due domande:
– qualora il blog non funzionasse, dopo le modifiche, cosa consigli di fare?
– queste modifiche si possono effettuare tranquillamente su un blog che esiste da alcuni anni oppure bisogna prendere ulteriori accortezze?
Grazie tante,
ciao ciao
Vex
Karibusana dice
Ciao vex, prima di fare qualsiasi modifica sul database ti consiglio di fare un backup così qualora qualcosa andasse storto puoi ripristinare il tutto. Puoi fare tranquillamente le modifiche su un blog piú datato 😉 mi raccomandp backup backup 🙂