Sicurezza wordpressSfortunatamente anche WordPress come tutti i software non è immune a problemi  di sicurezza, nonostante vari bug vengano risolti  potrai con qualche accortezza contribuire a renderlo un pò meno vulnerabile, vediamo come:

Avvertenza! Alcune soluzioni illustrate in seguito richiedono modifiche di files o database quindi ti consiglio di eseguire un backup di sicurezza, sopratutto se si tratta di database MySQL.

Proteggi il database

  • Sarebbe buona norma non creare un database condiviso con altre applicazioni ma usarne uno esclusivamente per WordPress, se qualcuno violasse i blog attraverso un accesso al database non tutti i dati si troveranno in pericolo.
  • Scegli la password del database complessa, è banale ma non tutti lo fanno. Non limitarti a 6 caratteri e inserisci sia numeri che lettere maiuscole e minuscole.

Compila correttamente wp-config.php

Oltre alle righe di codice usate per l’installazione puoi compilare altri parametri come:

  • La riga $table_prefix  = ‘wp_’; nomina il prefisso delle tabelle del database. Per limitare le probabilità di subire attacchi di database injection puoi cambiare quello di default wp_ con uno personalizzato tipo 35e8T_  per fare un semplice esempio. Questo può essere fatto durante l’installazione di WordPress in maniera immediata o successivamente tramite PhpMyAdmin o similari modificando manualmente i prefissi delle tabelle in base al prefix scelto in wp-config.php.
  • Queste righe di codice indicano le chiavi segrete o salted password. Le “salt” sono stringhe di codice pseudo-casuale che viene aggiunto alla password stessa prima della cifratura in modo da fornirne un valore sempre diverso.
    define('AUTH_KEY',         'put your unique phrase here');
    define('SECURE_AUTH_KEY',  'put your unique phrase here');
    define('LOGGED_IN_KEY',    'put your unique phrase here');
    define('NONCE_KEY',        'put your unique phrase here');
    define('AUTH_SALT',        'put your unique phrase here');
    define('SECURE_AUTH_SALT', 'put your unique phrase here');
    define('LOGGED_IN_SALT',   'put your unique phrase here');
    define('NONCE_SALT',       'put your unique phrase here');

    Devi generarle tramite un tool di WordPress che trovi in questa pagina Tool generazione chiavi segrete di WordPress quindi con semplice copia/incolla le vai a sostituire a quelle originali.

  • Infine puoi proteggere il file di configurazione wp-config.php usando .htaccess inserendo al suo interno queste righe di codice:
    <Files wp-config.php>
    Order Allow,Deny
    Deny from all
    </Files>

Secure Login tramite canale criptato

Se il tuo dominio ha attivo SSL puoi accedere alla Dashboard tramite un canale crittografato forzando le sessioni admin tramite HTTPS semplicemente impostando questa variabile nel file wp-config.php:

define ( 'FORCE_SSL_ADMIN' ,  true ) ;

Mantieni aggiornata la piattaforma

Un discorso a parte va fatto per gli aggiornamenti di WordPress in quanto, se è vero che la piattaforma va tenuta costantemente aggiornata, sia per la sicurezza che per l’avvento di nuove features, è altrettanto vero che a volte un aggiornamento può portare a problemi anche seri riguardanti specialmente la non compatibilità di alcuni plugin. Il mio consiglio personale quindi è di controllare sempre la compatibilità dei plugin, meglio ancora testando in locale o in una installazione di prova.

Nascondi la versione di WordPress

Con poche righe di codice puoi nascondere la versione in uso di WordPress, non sarà sicuramente questo a proteggere il tuo sito da attacchi ma almeno si eviterà di dare certe informazioni. Ti basta inserire queste righe nel file functions.php:

// nascondere versione di wordpress
function complete_version_removal() {
return '';
}
add_filter('the_generator', 'complete_version_removal');

Backup del database

Mettiti al sicuro dalla perdita di dati e installa un plugin che possa creare in automatico ad intervalli regolari un backup del database. Ne esistono diversi, alcuni dei quali ti permettono di ricevere il file di backup direttamente nella tua casella email, alla fine di questo articolo ne troverai uno tra i Plugin consigliati. Prossimamente scriverò una recensione anche su questo argomento molto importante.

Proteggi i files di amministrazione

La cartella /wp-admin contiene i files di amministrazione di WordPress, quelli che ci premettono di accedere alla Dashboard. È possibile limitarne l’accesso tramite .htaccess ad uno specifico indirizzo IP, naturalmente solo nel caso  in cui siamo in possesso di IP statico. Basterà creare un file .htaccess e metterlo dentro alla cartella wp-admin, inserendo nel file queste righe di codice:

Order Deny,Allow
Allow from ww.xx.yy.zz
Deny from all

dove ww.xx.yy.zz sarà il tuo indirizzo IP

Limita l’accesso tramite .htaccess a /wp-content e /wp-includes

Nella stessa maniera spiegata sopra puoi consentire l’accesso solo ad alcune risorse come immagini, fogli di style e javascript, limitandolo per esempio ai files Php. Come sopra andrai a creare un file .htaccess posizionandolo nelle cartelle wp-content e wp-includes nel cui interno inserirai queste righe di codice:

Order Allow,Deny
Deny from all
<Files ~ ".(css|jpe?g|png|gif|js)$">
Allow from all
</Files>

IMPORTANTE! Alcuni plugin potrebbero non funzionare correttamente e richiedere il permesso di accesso ad alcuni files.

Proteggi le cartelle /plugin e /themes

È possibile nascondere il contenuto delle cartelle /plugin e /themes inserendone un file index.html vuoto, se a qualcuno venisse l’idea di sbirciare tra plugin o temi installati visualizzerà una pagina bianca.

Conosci i Plugin installati

Cerca di tenere aggiornati all’ultima versione i Plugin che usi informandoti comunque della loro sicurezza e stabilità prima di eventuali upgrade. Installare un Plugin significa avere una risorsa utile per il tuo blog ma devi naturalmente fidarti anche del suo autore, mi è capitato recentemente di seguire una controversia riguardante un plugin per la gestione degli annunci Adsense in cui veniva più volte attaccato l’ autore reo secondo alcuni utenti di aver creato del codice che in modo nascosto indirizzava nelle sue tasche una percentuale degli introiti di Adsense.

Alcuni Plugin consigliati

Alcune delle operazioni sopra elencate possono essere svolte direttamente da alcuni plugin opportunamente configurati, ne trovi alcuni di interessanti qui di seguito:

  • BulletProof Security – protegge il sito da tentativi di hacking via XSS e SQL Injection tramite .htaccess con diverse opzioni configurabili.
  • WP Security Scan – scansiona WordPress cercando vulnerabilità suggerendo eventuali rimedi.
  • WP-DB-Backup – esegue un backup del database ad intervalli prefissati e ne permette l’invio tramite email.
  • Login LockDown – registra e blocca i tentativi di accesso non riuscito ripetuti dallo stesso range di IP in un determinato lasso di tempo.
  • Secure WordPress – svolge alcune operazioni come la rimozione della versione e dei log di errore di login, aggiunta di index.html etc.
  • AntiVirus for WordPress – monitoraggio e individuazione di modifiche ritenute dannose nel core e nel tema di WordPress.
  • Exploit Scanner – cerca nei files e nel database della tua installazione WordPress possibile codice malevolo.

E tu come proteggi il tuo blog?

Alla prossima!