Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Protezione database, file e cartelle

Scopriamo come nettere in sicurezza le tabelle del database di WordPress modificando i prefissi e nascondendo file e cartelle fondamentali per il funzionamento del CMS.
Scopriamo come nettere in sicurezza le tabelle del database di WordPress modificando i prefissi e nascondendo file e cartelle fondamentali per il funzionamento del CMS.
Link copiato negli appunti

Proteggere le tabelle del database

In fase di istallazione WordPress chiede all'amministratore del sito di assegnare un prefisso ai nomi delle tabelle, proponendo il valore predefinito wp_. Questo viene registrato nel file wp-config.php, nella variabile $table_prefix:

$table_prefix  = 'wp_';

Lasciare inalterato il prefisso suggerito, significa mettere in condizione chiunque di conoscere il nome delle tabelle del database. Modificando il prefisso, invece, si aggiunge una barriera in più contro le SQL injections. È quindi fortemente consigliato cambiare la stringa wp_ con un qualunque valore custom.

Se il sito è già in produzione, è ancora possibile modificare il prefisso delle tabelle, anche facendo ricorso alle funzionalità di PHPMyAdmin. I nomi delle tabelle, infatti, possono essere rinominati dalla scheda "Operations" di PHPMyAdmin come mostrato nell'immagine che segue.

Figura 1. Modificare il prefisso delle tabelle da PHPMyAdmin.
Modificare il prefisso delle tabelle da PHPMyAdmin

Questa modifica dovrà essere accompagnata dalla modifica del valore di $table_prefix nel file wp-config.php:

$table_prefix  = 'sm_';

Andranno, poi, modificati i valori di alcuni campi della tabella wp_usermeta. L'immagine successiva mette a confronto le tabelle {prefix}_usermeta di due diverse istallazioni: nella prima istallazione è stato lasciato il prefisso wp_, nella seconda è stato assegnato al prefisso un valore diverso:

Figura 2. Confronto tra tabelle con prefissi differenti.
Confronto tra tabelle con prefissi differenti

Una volta individuati i campi meta_key il cui valore inizia con il prefizzo wp_, bisognerà cambiarne i valori. PHPMyAdmin permette di agire sul valore con un semplice doppio click sul campo della tabella.

Ultima tabella da aggiornare è wp_options, dove dovrà essere modificato il campo option_name in corrispondenza del valore wp_user_roles. Anche qui dovrà essere sostituito il prefisso wp_.

Figura 3. Modifiche alla tabella wp_options.
Modifiche alla tabella wp_options

Nascondere file e cartelle dell'istallazione

wp-config.php è uno dei più importanti file di un'istallazione, in quanto contiene informazioni fondamentali, come i dati di connessione al database ed altri parametri di configurazione. È importante, quindi, proteggerlo da eventuali attacchi, riducendo i permessi di scrittura e, quando possibile, nascondendolo in una directory di livello superiore. Altre misure sono possibili agendo sulle impostazioni del server tramite il file .htaccess e saranno descritte nei prossimi capitoli.

WordPress permette di spostare il file wp-config.php in una directory di livello immediatamente superiore a quello dell'istallazione: il file sarà rilevato automaticamente nella sua nuova collocazione. Ovviamente, è possibile effettuare questa operazione solo se nello stesso spazio Web risiede una sola istallazione di WordPress.

È anche possibile spostare cartelle particolarmente sensibili che vengono utilizzate di continuo durante il funzionamento del CMS. Si tratta del folder che ospita l'intero contenuto del sito, /wp-content, del folder che ospita i plugin, /wp-content/plugins, e di quello che ospita i file media allegati ai contenuti, /wp-content/uploads.

Una volta spostati questi folder nella posizione desiderata, nel file wp-config.php dovranno essere definite le seguenti costanti:

// imposta URL e PATH della cartella wp-content
define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/wordpress/wp-content' );
define( 'WP_CONTENT_URL', 'http://example.com/wordpress/wp-content' );
// imposta URL e PATH della cartella plugins
define( 'WP_PLUGIN_DIR', dirname(__FILE__) . '/wordpress/wp-content/hidden/plugins' );
define( 'WP_PLUGIN_URL', 'http://example.com/wordpress/wp-content/hidden/plugins' );
// imposta URL e PATH della cartella uploads
define( 'UPLOADS', 'wordpress/wp-content/hidden/uploads' );

Figura 4. Directory plugins e uploads nascoste nella directory hidden.
Directory plugins e uploads nascoste nella directory hidden

Con queste modifiche, la struttura dei file non sarà più nota.

Ti consigliamo anche