Come proteggere il tuo sito WordPress

WordPress è il CMS più popolare e diffuso nel mondo del web (1/4 dei siti attivi su Internet lo utilizza!), ma la popolarità è un’arma a doppio taglio, che spesso fa rima con vulnerabilità. Un codice aperto e molto utilizzato è statisticamente più incline ad essere violato o esposto dai sui, inevitabili, bug. Per questo motivo è indispensabile, quando installate e configurate una soluzione WordPress per i vostri progetti, di tenere conto di una serie di best practice che vi consentiranno di irrobustire la sicurezza del vostro sito WordPress.

Se hai bisogno di una consulenza per il tuo progetto WordPress, puoi contattarci qui.

Aggiornare WordPress

Aggiornare la versione del core WordPress, del tema e dei vari plugin, non è solo un vezzo, ma una vera necessità. I pacchetti più popolari sono quelli più bersagliati per le vulnerabilità, al tempo stesso i loro sviluppatori sono quelli più rapidi a correggere i propri bug. Tenersi sempre al passo con la versione vi preserva dal restare invischiati in bachi di sicurezza che possono essere anche molto gravi.

Vi consiglio in ogni caso di disabilitare gli aggiornamenti automatici di WordPress, inserendo la seguente entry nel file wp-config.php

define (‘WP_AUTO_UPDATE_CORE’, false);   (per gli aggiornamenti della versione core di WordPress)

Installare un certificato SSL

Per dotare il vostro sito di una generale protezione contro il fenomeno dello sniffing delle transazioni, è necessario installare un certificato SSL che vi consentirà di gestire tutte le chiamate con il protocollo sicuro HTTPS. Di recente i siti che utilizzano questo protocollo hanno ricevuto un boost nei ranking di Google.

DA LEGGERE: Come installare un certificato SSL su WordPress

Proteggere il file wp-config.php

All’interno dei vostri file WordPress, il più delicato e critico è sicuramente il file wp-config.php, che raggruppa le configurazioni essenziali del vostro sito WordPress, come le credenziali del database MySQL e l’host dove esso è ospitato. Una delle tecniche di hackeraggio più comuni consiste nell’accedere da remoto a tale file, cambiare i parametri e rendere così, istantaneamente, il vostro sito WordPress inaccessibile.

Per aumentare il livello di sicurezza WordPress, dovete innanzitutto rendere più difficile l’accesso a questo file. Se volete evitare complessi spostamenti del wp-config.php nelle sub-folder, o se non ve la sentite di architettare uno split delle configurazioni in più file interni, potete comunque configurare il vostro .htaccess per impedire l’accesso del file da web, così:

<files wp-config.php>
order allow,deny
deny from all
</files>

Non utilizzare l’utente admin

Qui cadiamo nei consigli di “buon senso”. Una volta WordPress creava di default l’utenza “admin” nel momento dell’installazione, mentre allo stato attuale il proprietario del sito può scegliere il nome della prima utenza creata. Ecco, evitate di chiamare “admin” qualsiasi utente, soprattutto con un ruolo di amministratore (vedi par. successivo). Un hacker medio che desidera “bucarvi” il sito con un brute force attack, inizierà sicuramente a provare con l’utenza “admin”.

Eliminare l’utenza di installazione

Allo stesso modo, nel caso in cui l’hacker riesca a penetrare la vostra base-dati, egli potrebbe comunque risalire alla username dell’utenza che avete creato in fase d’installazione. E’ relativamente semplice, basta interrogare la tabella wp_users e recuperare il record con ID pari a 1. Pertanto vi consiglio, una volta completata l’installazione, di creare una nuova utenza, assegnarle i diritti di amministratore e poi procedere all’eliminazione dell’utenza d’installazione. Ovviamente prestate attenzione a non lasciare assegnati dei post a quell’utenza.

Cambiare il prefisso nelle tabelle del database

Ormai tutti sanno che la base-dati di WordPress presenta delle tabelle che hanno di default un prefisso del tipo “wp_”. Lo sanno tutti, e per questo motivo uno degli attacchi più frequenti consiste nel fare SQL injection diretta sulle tabelle, una volta che si è individuato il DB. Potete rendere più difficile questo attacco cambiando il prefisso delle tabelle, in questa maniera.

Modificare il wp-config.php

Aprite il file wp-config.php e cambiate il prefisso ‘wp_’ con quello nuovo:

$table_prefix= 'newprefix_';

Cambiare il prefisso di tutte le tabelle del DB

Dal pannello di phpmyadmin lanciate le seguenti query di RENAME:

RENAME table `wp_commentmeta` TO `newprefix_commentmeta`;
RENAME table `wp_comments` TO `newprefix_comments`;
RENAME table `wp_links` TO `newprefix_links`;
RENAME table `wp_options` TO `newprefix_options`;
RENAME table `wp_postmeta` TO `newprefix_postmeta`;
RENAME table `wp_posts` TO `newprefix_posts`;
RENAME table `wp_terms` TO `newprefix_terms`;
RENAME table `wp_term_relationships` TO `newprefix_term_relationships`;
RENAME table `wp_term_taxonomy` TO `newprefix_term_taxonomy`;
RENAME table `wp_usermeta` TO `newprefix_usermeta`;
RENAME table `wp_users` TO `newprefix_users`;

Aggiornare le referenze nelle tabelle usermeta e options

UPDATE `newprefix_usermeta` SET `meta_key` = REPLACE( `meta_key`, 'wp_', 'newprefix_' )
UPDATE `newprefix_options` SET `option_name` = 'newprefix_user_roles' WHERE `option_name` = 'wp_user_roles'

Cancellare temi e plugin non utilizzati

Nell’utilizzo di WordPress, spesso può capitare di cambiare tema, oppure di disfarsi di un plugin che non ci serve più. Perché lo tenete ancora installato, allora? Si tratta comunque di una possibile vulnerabilità in più nel codice. Cancellate tutto quello che non tenete attivo.

Nascondere la versione di WordPress

Un indizio utilissimo per gli hacker è quello relativo alla versione WordPress del vostro sito. Come già detto, ogni versione si porta dietro una serie di punti deboli, vulnerabilità e veri e propri bug che gli hacker potrebbero sfruttare a loro vantaggio. Per “nascondere” agli occhi altrui la versione WordPress, dovete inserire il seguente codice all’interno del file functions.php.

/* Hide Version Number */
/* Hide WP version strings from scripts and styles
* @return {string} $src
* @filter script_loader_src
* @filter style_loader_src
*/
function fb_remove_wp_version_strings( $src ) {
global $wp_version;
parse_str(parse_url($src, PHP_URL_QUERY), $query);
if ( !empty($query['ver']) && $query['ver'] === $wp_version ) {
$src = remove_query_arg('ver', $src);
}
return $src;
}
add_filter( 'script_loader_src', 'fb_remove_wp_version_strings' );
add_filter( 'style_loader_src', 'fb_remove_wp_version_strings' );
/* Hide WP version strings from generator meta tag */
function fb_remove_version() {
return '';
}
add_filter('the_generator', 'fb_remove_version'); 

Utilizzare i permessi corretti

Mi raccomando, non siate laschi con i permessi di lettura/scrittura sul vostro spazio web Apache. Se permettete a qualsiasi utenza di modificare i vostri files, vi esponete a qualsiasi tipo di attacco.

Questi sono i permessi minimi per le varie tipologie, ma ovviamente potete essere ancor più stringenti.

root directory  www.miosito.com/                      0755
wp-admin        www.miosito.com/wp-admin              0755
wp-content      www.miosito.com/wp-content            0755
wp-includes     www.miosito.com/wp-includes           0755
.htaccess       www.miosito.com/.htaccess             0644
readme.html     www.miosito.com/readme.html           0400
wp-config.php   www.miosito.com/wp-config.php         0600

Effettuare dei backup periodici

Cosa succede se, a dispetto di ogni precauzione presa, ci manomettono il sito? In linea generale dovremo ripristinare i files originali e/o la base-dati. Per questo motivo è fondamentale schedulare dei backup periodici di entrambe le componenti, da effettuare almeno ogni update importante o comunque una volta ogni 7-10 giorni. Esistono alcuni ottimi plugin che vi consentono di gestire quest’attività, per esempio Backup, che è freemium ma la versione base è praticamente completa. Se non avete troppo spazio disco, potete lavorare con dei backup incrementali.

E voi, quale altre best practices mettete in pratica per aumentare la sicurezza di WordPress?

 

Lascia un Commento

Inizia a digitare e premi Enter per effettuare una ricerca

Show Buttons
Hide Buttons
Come installare SSL su un sito WordPressI migliori plugin WordPress per gestire una newsletter