Sicurezza su WordPress e passi per renderlo più sicuro

Cercherò di indicare ed indirizzarvi alle fondamentali tecniche che vi permettono di raggiungere un buon livello di sicurezza dove sarà possibile dormire sonni tranquilli.

Effettuare regolarmente gli aggiornamenti:

Gli aggiornamenti sono indispensabili perchè vengono scoperte nuove vulnerabilità che possono mettere in pericolo anche il sito web ospitato dal server web più sicuro del mondo.

Purtroppo esistono moltissime tecniche che con pochi sforzi è possibile guadagnare gli accessi con siti web poco aggiornati e con versioni e tecniche di programmazione che non rendono sicura l’infrastruttura di wordpress, proprio per questa ragione è indispensabile effettuare gli aggiornamenti della propria installazione di worpress.

esempio della pagina di aggiornamento

Se avete problemi di compatibilità coi temi vi raccomando nell’impossibilità di un aggiornamento a prendere le precauzioni necessarie perchè non possano effettuare exploit sfruttando quei files che permettono di creare problemi sul vostro sito.

Cambiare il vostro nome utente se è uguale ad admin o administrator o se il nome è troppo corto:

Se non avete ancora installato wordpress potete assegnare un utente amministrativo utilizzando un nome che non contenga admin, administrator, adm, amministratore, ecc…

Potete invece utilizzare parole composte e numeri es: nomefantasia_nickname_5331

Importante è avere un nome che non contenga parole presenti in nessun dizionario e la stessa regola va applicata alle password.

anche la password se vengono usati caratteri alfanumerici es: fdhEWpkS3IqlG3

Più lungo è il vostro nome utente e più difficile renderete un eventuale attacco di forza bruta (brute force) sul vostro pannello di login.

N.B: Gli attacchi di forza bruta sui server di www.4host.ch e www.hostingedominio.com non sono possibili in quanto vengono immediatamente bloccati, sarete già protetti da questi due hosting provider.

Proteggere i vostri files di configurazione e logfiles:

I file di configurazione come wp-config.php il .htaccess ed i logfiles come error_log, ecc… potrebbero dare informazioni utili a malintenzionati che potrebbero capire quali script sono vulnerabili secondo le versioni di wordpress che andate ad utilizzare.

Per proteggere questi files è possibile inserire alcune direttive in .htaccess per impedirne l’accesso.

Esempio di file “.htaccess”:
## Sicurezza per proteggere i vostri files contenenti dati sensibili ##
<FilesMatch “(wp-config.php|.htaccess|error_log|version.php)>
order allow,deny
deny from all
</FilesMatch>
È infine utile spostare il file wp-config.php in una cartella “non starndard” così che se anche un malintezionato possa eseguire piccole porzioni di codice sul vostro spazio web (a causa di un form programmato male o di un pugin e/o componenti e moduli programmati male), non si aspetterà di non riuscire a trovarlo nel solito posto! Questa tecnica funziona sopratutto per script standard che tentano di trovare files di configurazione nel posto che si aspetta si trovi e se noi spostiamo questo files altrove lo script non avrà successo (è ovviamente facile raggirare con questa tecnica script automatizzati) è invece meno facile se lo script ricerca tutta la home dell’utente compromesso e a questo punto se la home è compromessa non avrebbe comunue senso spostarlo altrove in quanto il malintezionato è comunque in grado di far girare ciò che vuole sullo spazio dell’utente già compromesso.

Ad ogni modo è sempre positivo spostare questo file e rendere difficile la sua localizzazione, quindi procediamo come di seguito descritto:

Via FTP create una cartella esempio in /home/vostroutente/cartellafantasia

Create un file nominato configurazione.php
<?php
// Inseriamo in questo file le credenziali copiate da wp-config.php
/** Il nome del database di WordPress */
define(‘DB_NAME’, ‘nome_bancadati’);

/** Nome utente del database MySQL */
define(‘DB_USER’, ‘utente_bancadati’);

/** Password del database MySQL */
define(‘DB_PASSWORD’, ‘xxxxxxxxxx’);

/** Hostname MySQL */
define(‘DB_HOST’, ‘localhost’);
?>
impostiamo le proprietà di sicurezza di questo file con permessi su 0644 con filezilla basta cliccare col tasto destro del mouse e cliccando su “Permessi file…”

Cancelleremo ora le righe contenenti le credenziali che devono restare nascoste dalla public_html da wp-config.php ed aggiungeremo l’inclusione a questo file come da questo esempio:
<?php
/**
* Il file base di configurazione di WordPress.
*
* Questo file definisce le seguenti configurazioni: impostazioni MySQL,
* Prefisso Tabella, Chiavi Segrete, Lingua di WordPress e ABSPATH.
* E’ possibile trovare ultetriori informazioni visitando la pagina: del
* Codex {@link https://codex.wordpress.org/Editing_wp-config.php
* Editing wp-config.php}. E’ possibile ottenere le impostazioni per
* MySQL dal proprio fornitore di hosting.
*
* Questo file viene utilizzato, durante l’installazione, dallo script
* di creazione di wp-config.php. Non è necessario utilizzarlo solo via
* web,è anche possibile copiare questo file in “wp-config.php” e
* rimepire i valori corretti.
*
* @package WordPress
*/
include(‘/home/vostroacconto/cartellafantasia/configurazione.php’); // qua andremo ad includere il file contenente i dati per il collegamento alla bancadati

/** Charset del Database da utilizare nella creazione delle tabelle. */
define(‘DB_CHARSET’, ‘utf8’);

/** Il tipo di Collazione del Database. Da non modificare se non si ha
idea di cosa sia. */
define(‘DB_COLLATE’, ”);

//..
//..

<?
a questo punto salviamo e rendiamo anche questo file scrivibile solo dall’utente con i privilegi più alti ovvero con i permessi impostati a 0600 sempre con filezilla.

Questa tecnica funziona su www.4host.ch e www.hostingedominio.com

N.B: La tecnica qua sopra ha senso unicamente se sono state prese delle misure aggiuntive dal vostro provider hosting di modo che la vostra cartella in /home/vostroutente/ sia resa impenetrabile se non dal vostro utente.

Provate a chiedere al vostro hosting provider se questa tecnica ha delle differenze, probabilmente dovrete cambiare la cartella /home/vostroutente/ (la radice dell’acconto principale) con un’altro tipo di percorso secondo la tipologia di pannello di controllo utilizzato dal vostro provider hosting.

Modificare il nome del prefisso della banca dati di wordpress

in seguito è possibile modificare anche dopo aver installato il wordpress il prefisso della bancadati “wp_” che viene utilizzato per la creazione delle tabelle.

È meglio effettuare il cambiamento durante una nuova installazione di wordpress, ma se non lo si ha fatto prima è possibile accedere a phpmyadmin (chiedete al vostro fornitore di hosting) e cambiare prima tutti i prefissi delle tabelle con caratteri di fantasia es: “sdfshjjds_” dove meno hanno senso e meglio è, poi aprite il file “wp-config.php” ed andate in Prefisso del database WordPress e troverete le seguenti righe:
* Prefisso Tabella del Database WordPress.
*
* E’ possibile avere installazioni multiple su di un unico database if you give each a unique
* fornendo a ciascuna installazione un prefisso univoco.
* Solo numeri, lettere e sottolineatura!
*/
$table_prefix = ‘sgfsgwrtgwe_’;
in questo esempio abbiamo inserito dei caratteri di fantasia e così facendo gli exploit più banali vengono scongiurati.

Su www.4host.ch e su www.hostingedominio.com ci sono avanzatissimi meccanismi anti-hacking che permettono di tenere al sicuro ogni singolo sito internet premesso che siano state prese queste misure “minime” di sicurezza.

In generale è indispensabile scegliere un provider hosting che disponga dei backup giornalieri, settimanali e mensili così che se un cliente decida di ripristinare il suo servizio di hosting, possa richiedere i files necessari ed eventualmente effettuare un restore completo dell’acconto così da tornare ad una situazione funzionante e prima del disastro.

Anche per WordPress come per Joomla esistono componenti gratuiti o a pagamento che ne aumentano la sicurezza e premesso che questi step siano stati effettuati ed implementati con successo, potrete già dormire sonni tranquilli.