COME POSSIAMO DIFENDERE WORDPRESS DAGLI HACKER Stampa

  • wordpress protect
  • 0

COME POSSIAMO DIFENDERE WORDPRESS DAGLI HACKER

Una volta, dopo la pubblicazione di un mio articolo riguardo il plugin IThemes Security, alla mia affermazione che settandolo per bene si poteva stare tranquilli, un utente mi rispose che in questo campo non si può mai stare tranquilli. L’esperienza mi ha poi dimostrato quanto questo commento fosse veritiero. Anche se si installa un plugin dedicato alla sicurezza di WordPress, è sempre bene monitorare il sito, aggiornare il core ed i plugin e mettere in campo altre piccole azioni che innalzano il livello di sicurezza.

IL PRIMO LIVELLO DI SICUREZZA SI IMPOSTA ALL’INIZIO

I primi accorgimenti per la sicurezza del nostro sito realizzato con wordpress si mettono in campo in fase di installazione. Scegliere un nome utente per l’amministratore diverso da quello standard (admin), impostare una password efficace che sia sufficientemente lunga, inserendo lettere maiuscole, minuscole, numeri e caratteri speciali, scegliendo come prefisso delle tabelle del database un qualcosa di diverso dal solito wp_ (ad esempio xy_12) e inserendo nel file wp-config.php delle chiavi di cifratura che possiamo copiare ed incollare da questo link.

Se non abbiamo fatto all’inizio tutto questo, in seguito spiegheremo come farlo con un sito in produzione.

ELIMINARE L’UTENTE ADMIN

WordPress di default assegna all’utente amministratore la username “admin”. E’ buona norma cambiare questa user con un nome a nostra scelta. Lasciare l’utente amministratore con la user “admin” significa concedere un altro piccolo vantaggio agli hacker ed ai sistemi automatizzati utilizzati per portare attacchi brute-force al sito. Per cambiare la user admin non serve inserire codice. Basta agire nella sezione utenti della bacheca di WordPress.
UTILIZZARE UNA PASSWORD FORTE

Ogni volta che innalziamo il livello di complessità della password, aumenta il tempo da impiegare per violarla. Utilizziamo password sufficientemente lunghe, inserendo lettere maiuscole, minuscole, numeri e caratteri speciali.
CAMBIARE IL PREFISSO DELLE TABELLE

WordPress per funzionare ha bisogno di un database MySql. Le tabelle del database vengono create automaticamente con l’installazione di WordPress ed hanno il prefisso wp_. Voler cambiare questo prefisso per ragioni di sicurezza è scelta saggia. Ma come si fa a cambiare il prefisso delle tabelle MySql di WordPress? Per prima cosa facciamo un Backup del database. Poi apriamo il file config.php e correggiamo il prefisso delle tabelle:
$table_prefix = ‘wp_” in $table_prefix = ‘xy_12’ (al posto di xy_12 potete mettere un prefisso a vostro piacere)
Poi ci portiamo nel phpmyadmin e seguiamo questa semplice guida. Il gioco è fatto.
INSERIRE LE CHIAVI DI CIFRATURA

A questo punto riprendiamo il file wp-config.php ed apriamolo. Utilizzando il link citato nel paragrafo “il primo livello di sicurezza si imposta all’inizio”, copiamo le chiavi di cifratura ed incolliamole sovrascrivendole a quelle di default del file (che all’inizio sono vuote come vedete sotto)
define(‘AUTH_KEY’,’qui la chiave’);
define(‘SECURE_AUTH_KEY’,’qui la chiave’);
define(‘LOGGED_IN_KEY’,’qui la chiave’);
define(‘NONCE_KEY’,’qui la chiave’);
define(‘AUTH_SALT’,’qui la chiave’);
define(‘SECURE_AUTH_SALT’,’qui la chiave’);
define(‘LOGGED_IN_SALT’,’qui la chiave’);
define(‘NONCE_SALT’,’qui la chiave’);
DISABILITARE L’EDITOR DALLA BACHECA

Nel caso un hacker riuscisse ad entrare sulla vostra bacheca, si troverebbe la possibilità di intervenire sul codice dei vostri principali files. Si può porre rimedio inibendo la visualizzazione di questi files dalla bacheca, inserendo sul vostro wp-config.php il seguente codice:

define ( ‘DISALLOW_FILE_EDIT’, true);

Non preoccupatevi. Se inseguito voleste mettere mano ai file di wordpress nascosti, potete utilizzare il vostro client ftp per scaricarli e modificarli.

NASCONDERE LA VERSIONE DI WORDPRESS

Un hacker, può risparmiare tempo e mettere in campo azioni specifiche per una certa versione di wordpress se ne conosce il tipo. La versione di WP la si vede visualizzando il codice sorgente del sito con un qualsiasi browser. Per nascondere la versione di WordPress utilizzata scrivi sul file header.php la seguente stringa:

<?php remove_action ( ‘wp_head’, ‘wp_generator’); ?>

ELIMINARE LA VISUALIZZAZIONE DEGLI ERRORI

Quando vi è un problema con un tema o un plugin, sul nostro sito appaiono dei messaggi di errore. Questi messaggi servono per capire dove sta il problema per così risolverlo. Ma i malintenzionati potrebbero sfruttarlo per ottenere dei punti d’ingresso al sito, in quanto contengono il percorso del server. Quindi è buona norma disabilitare la visualizzazione dei messaggi di errore. Per farlo, aggiungi al file wp-config.php il seguente codice:

error_reporting(0);
@ini_set(‘display_errors’, 0);

CAMBIARE LA URL DELLA LOGIN

Anche i sassi sanno che per accedere ad un sito wordpress si comincia dalla pagina di login attarverso la url miostio.xx/wp-admin. Per eliminare questa facilitazione potremmo cambiare l’ultima parte della url /wp-admin con una parola a nostro piacere e farla diventare ad esempio miosito.xx/miaparola. Per farlo bisogna operare su 3 files diversi nella seguente maniera:

Sul wp-config.php inserire:

DEFINE(‘WP_ADMIN_DIR’, ‘miaparola’);
DEFINE (‘ADMIN_COOKIE_PATH’, ‘SITECOOKIEPATH.WP_ADMIN_DIR);

Editare poi il function.php del tema aggiungendo queste righe:

add_filter(‘site_url’, ‘wpadmin_filter’, 10,3);
function wpadmin_filter($url,$path,$orig_scheme) {
$old = array(“/(wp-admin)/”);
$admin_dir = WP_ADMIN_DIR;
$new = array($admin_dir);
return preg_replace($old, $new, $url, 1);
}

Ed infine scrivere sul file .htaccess

RewriteRule ^miaparola/(.*) wp-admin/$1?%{QUERY_STRING} [L]

NASCONDERE IL FILE WP-CONFIG

Il file wp-config è forse il file più importante di tutto WordPress. Esso contiene l’indirizzo del db e le credenziali di accesso ad esso. Insomma, se un malintenzionato venisse a conoscenza del contenuto di questo file provocherebbe un disastro. Per fortuna possiamo nasconderlo attraverso l’inserimento di poche semplici istruzioni all’interno del file .htaccess. Al di fuori dello spazio tra # BEGIN WordPress e # END WordPress inseriamo
<Files wp–config.php>
Order Allow,Deny
Deny from all
</Files>
METTERE I FILE WP-CONFIG E .HTACCESS IN SOLA LETTURA

Come detto, i file più importanti di WordPress sono il wp-config.php e l’hatccess. Proteggerli dalle modifiche è un passo obbligato in ottica sicurezza. Come fare? Si può fare direttamente agendo all’interno di filezilla. Tasto destro sul file e cliccare su “permessi file”. Impostarli poi a 644 che vuol dire che i file sono accessbili da tutti in sola lettura, tranne che per il proprietario che potrà agire anche in scrittura.
BACKUP, BACKUP, BACKUP

Non si può mai sapere, anche se abbiamo messo in pratica tutte le precauzioni del mondo il nostro sito in WordPress potrebbe essere violato lo stesso. In questo caso un backup dei file e del database ci sarà indispensabile. Il Backup è comodo anche se dovesse succedere che qualche plugin andasse un conflitto con qualche altro plugin o con wordpress stesso e il sito restituisce solo una schermata bianca. Un valido aiuto per tutto ciò è il plugin UpdraftPlus – Backup and Restore. Questo Plugin permette di fare una backup sia dei dati che dei database, immagazzinarli in un percorso specifico del nostro sito o in un’applicazione tipo dropbox e similari. Basterà settarlo all’inizio e lanciare il primo backup. Dopodiché potremmo anche decidere se effettuare dei backup in automatico con cadenza giornaliera, settimanale, quindicinale o mensile. Il plugin da anche la possibilità di decidere quanti backup conservare. Io di solito ne conservo due. Quando parte il terzo backup, il più vecchio si cancella. Una volta fatto il backup è possibile ripristinare il sito tramite il semplice pulsante restore. Oltre al backup ed al restore, questo plugin da anche la possibilità di effettuare una copia clone. Il plugin è scaricabile dalla repository dei plugin di WordPress ed è gratuito.
Per mia sicurezza, di solito faccio anche una copia dei files e delle cartelle in locale e mi esporto il database in locale tramite phpmyadmin.


Hai trovato utile questa risposta?

« Indietro