Come rendere sicuro un sito WordPress in 10 passi

immagine articolo sicurezza wordpress

In questo articolo parliamo di sicurezza per quanto riguarda i siti WordPress, vediamo quali sono le operazioni che ci consentono di dormire sonni tranquilli.

A Febbraio ho avuto la possibilità di fare uno speech al WordPress Meetup Firenze su questo tema e in questo articolo voglio riportare i concetti che ho trattato, più qualche chicca.

WordPress è sicuro?

WordPress è il CMS più diffuso e questo lo espone a più rischi rispetto agli altri CMS, proprio per la sua diffusione.

Il core di WordPress è sicuro, sono le operazioni che facciamo sul nostro sito che possono mettere a rischio la sicurezza.

Ecco le operazioni più diffuse che portano problemi di sicurezza ad un sito WordPress:

1
Installazione di Plugin nulled

Ovvero quei plugin che sono stati modificati per “evitare i costi della licenza”.

2
Software non aggiornato

Ossia versioni vecchie di WordPress e dei plugin che non vengono aggiornate da molto tempo.

3
Credenziali non sicure

Sembra banale dirlo ma ancora si continuano a usare nome utente e password facili da indovinare.

Vediamo i 10 passi per rendere sicuro il nostro sito WordPress

1)
Hosting Sicuro e https

La maggior parte dei siti WordPress viene attaccata lato server, quindi è molto importante investire in un buon servizio di Hosting, che sia sicuro e dotato di protocollo https.
È consigliabile anche scegliere dei piani di hosting ottimizzati per WordPress o meglio ancora dei server dedicati.

Ormai quasi tutti gli hosting provider offrono connessioni https e certificato SSL, quindi ti consiglio di scegliere un hosting che fornisca un buon supporto che ti aiuti a risolvere eventuali problemi.

2)
Cambiare il prefisso delle tabelle del database

È noto a tutti che le tabelle del database di WordPress hanno il prefisso WP_

Questo facilita gli attacchi al database perchè già si conoscono le tabelle che vengono installate di default.

Ti consiglio di modificare il prefisso delle tabelle in fase di installazione, cioè quando ti appare la schermata di installazione di WordPress oppure tramite ftp modificando il file wp-config.php

/**
 * Prefisso Tabella del Database WordPress.
 *
 * È possibile avere installazioni multiple su di un unico database
 * fornendo a ciascuna installazione un prefisso univoco.
 * Solo numeri, lettere e sottolineatura!
 */
$table_prefix  = 'ilmioprefisso_';

Cerca nel file wp-config.php questa stringa e modifica il prefisso delle tabelle sostituendo wp con il tuo prefisso personalizzato.

3)
Usare nome utente e password complessi

Una delle cause principali dei siti bucati è la semplicità disarmante di username e password.

Una recente indagine ha confermato che admin e password sono le credenziali più utilizzate.

Capisci bene che usando credenziali di questo tipo, anche un bambino potrebbe hackerare un sito.

Quindi seguiamo queste brevi regole per generare delle credenziali sicure:

  • Lunghezza di almeno 8 caratteri
  • Usare sia lettere maiuscole che minuscole e simboli
  • Evitare di mettere il nostro nome come nome utente amministratore

Esistono vari strumenti che ci aiutano a creare password sicure, per esempio 1password è un’app che ti permette di generare e salvare tutte le tue password in un unico posto oppure possiamo usare anche dei tool online come https://passwordsgenerator.net/

4)
Inserire Api Key nel wp-config.php

Le Api Key sono un sistema per criptare le password e i cookies di WordPress ma al momento dell’installazione non sono configurate.

Per aumentare il livello di sicurezza è consigliato generare le chiavi e inserirle nel wp-config.php.

Per generare le chiavi clicca questo link https://api.wordpress.org/secret-key/1.1/salt/
Poi incollale nel file wp-config.php (come nell’esempio qui sotto).

/**#@+
 * Chiavi Univoche di Autenticazione e di Salatura.
 *
 * Modificarle con frasi univoche differenti!
 * È possibile generare tali chiavi utilizzando {@link https://api.wordpress.org/secret-key/1.1/salt/ servizio di chiavi-segrete di WordPress.org}
 * È possibile cambiare queste chiavi in qualsiasi momento, per invalidare tuttii cookie esistenti. Ciò forzerà tutti gli utenti ad effettuare nuovamente il login.
 *
 * @since 2.6.0
 */
define('AUTH_KEY',         'C>RfU8>hpFXNcd;JoaF4Y$$4yj%3Si)bsvCy}a#f--?C?~lQt}nH&61uH+yI{PvY');
define('SECURE_AUTH_KEY',  '?YtbSJ?FEW^ x@>4D#g%}?X_Pu{U&WZ5%AcAVrN=<[-A=I*}jOBEg*!hfxK=lzJi');
define('LOGGED_IN_KEY',    'e7W<J}JcQq(+T$y#.5Xg_XKm*_U&DI?g2o|3VjY->E[!eIS(kUQ+F/3DFV&B-hNP');
define('NONCE_KEY',        ')P}B3zICC.-r v_x HN#IZsd`5pcz{AJI]g[XJQ*cmT7$Ct&]38))#!?UJ=Z]}&j');
define('AUTH_SALT',        '%$Z.S9nhKpj5F)00QJCV<GU$?x-pD>M3SR=qt-V9%3#+(U~/>xHB@i0WDYz$CW0[');
define('SECURE_AUTH_SALT', 'gf?dL::3iaYyGc+*`M~bUPL~)p#(G9fKMml^2f]=d45/ls<#]9i9Nn|W+Zcz19(1');
define('LOGGED_IN_SALT',   'KVF?1`ihF p&y8/m$b%i4N)lI0MJ|:Jh1+sZgL!zMy*;UF3Q9G#SZ#9IBE0/#|hN');
define('NONCE_SALT',       '5d(v7$~LW|H{Q7}BBT={_uq>? ?J0bwBQ>5(wvW]9(x&<x2xH<h6Q;dt+6omn1r+');
/**#@-*/

5)
Nascondere la versione di WordPress

Di default WordPress mostra il numero della versione nel codice sorgente dell’header,
per cui è molto semplice per un malintenzionato verificare quale versione è installata e magari sfruttare delle vulnerabilità note di quella versione.

Per nascondere la versione di WordPress possiamo fare principalmente in due modi:

  • Usare un plugin (per esempio Wordfence)
  • Agire nel file functions.php del tema

Nel primo caso è sufficiente accedere alla bacheca WordPress e nel menu di Wordfence andare su All options >> General settings e assicurarsi che la voce “Hide WordPress version” sia attiva.

Se preferisci agire nel functions.php del tema, è sufficiente inserire la seguente stringa:

function wp_version_remove_version() {
return '';
}
add_filter('the_generator','wp_version_remove_version');

Consiglio: esegui sempre un backup del functions.php prima di effettuare delle modifiche.

6)
Proteggere le cartelle e il file wp-config.php

Nella cartella wp-includes, nel file wp-config.php e nel file readme.html sono contenute informazioni importanti che riguardano la nostra installazione WordPress come il nome utente del database e la password, quindi è importante impostare bene i permessi di queste cartelle e impedire l’accesso ai malintenzionati. 

Per impedire l’accesso a questi files e cartelle è sufficiente inserire le seguenti righe nel file .htaccess:

# PROTEZIONE WP-CONFIG
order allow, deny
deny from all
  
# PROTEZIONE WP-INCLUDES
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]

Consiglio: salva sempre una copia del file .htaccess prima di eseguire delle modifiche

7)
Modificare la url di login di WordPress

La url predefinita di amministrazione di WordPress è nota a tutti (/wp-admin/), quindi per diminuire gli attacchi alla pagina di login da parte di bot automatici, è importante cambiare la url di default.

Lo possiamo fare facilmente installando un plugin come WPS Hide login che ci permette di scegliere una url personalizzata che diventerà l’unica via per eseguire il login ed accedere alla gestione del nostro sito.

8)
Cancellare l’utente con ID1

Quando installiamo WordPress di default al primo utente che creiamo è associato l’ID1.
Ti suggerisco di creare un secondo utente amministratore ed eliminare o impostare come sottoscrittore l’utente con ID1.

Dopo l’installazione, crea un nuovo amministratore (che avrà così un ID2) e, successivamente, loggandoti con questo nuovo amministratore, elimina l’utente con ID1.

9)
Installare un Firewall (WAF)

Per aumentare ulteriormente la sicurezza e proteggere la nostra installazione WordPress da attacchi Brute-Force, possiamo installare un plugin come Wordfence oppure iThemes Security che hanno un sistema di firewall e di blocco IP.

Wordfence ha anche un sistema di scan dei file per l’individuazione di files corrotti e anche un sistema di alert che ci avvisa sulle criticità del nostro sito.

10)
Tenere sempre aggiornati core, temi e plugin

È molto importante mantenere sempre aggiornato il nostro sito, installare le nuove versioni di WordPress, aggioronare i plugin e il tema.

Prima di ogni aggiornamento è importate verificare le compatibilità delle nuove release con temi e plugin e ancora più importante, fare un backup di files e database.

Consiglio Bonus

11)
Backup, Backup, Backup!

Un backup del sito e del database, ci consente di ripristinare facilmente e velocemente l’ultima versione funzionante in seguito a un eventuale malfunzionamento, che sia dovuto ad un hackeraggio, oppure ad un aggiornamento andato male.

Esistono diversi plugin come Updraftplus che eseguono un backup programmato, per cui ricordiamoci sempre di fare i backup.

Se vuoi saperne di più sui plugin per fare il backup, puoi leggere l’articolo Backup WordPress: il Miglior Plugin Gratis.

Conclusioni finali

Con questa guida abbiamo visto alcune tecniche per rendere più sicuro un sito WordPress, naturalmente ciò non rende sicuro al 100% un sito ma con queste azioni riduciamo di molto le possibilità di attacchi dannosi.

Puoi vedere le slide del mio speech qui:

Se questo articolo ti è stato utile fammelo sapere con un commento qua sotto, rispondo sempre 😉

Per ora è tutto, ci vediamo al prossimo post!

Ti è stato utile questo articolo?

[Voti: 0    Media Voto: 0/5]

All’interno degli articoli potrebbero essere presenti dei link affiliati.
Ci tengo a precisare che tutti i link di affiliazione sono di prodotti e servizi che ho testato, che utilizzo e in cui credo veramente.
Nel momento in cui un prodotto risultasse non più il top, rimuoverei immediatamente tutti i relativi link.

foto gabriele iacovone

Gabriele Iacovone

Web Designer WordPress

Ciao, mi chiamo Gabriele e sono un Web Designer freelance e autore del blog.
La mia passione per WordPress mi spinge ad aiutare persone, aziende e professionisti nello sviluppo di Siti Web potenti e flessibili.

Ricevi i miei consigli e le guide su WordPress e il Web Design

  • Non preoccuparti, niente spam.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

 

Condividi su linkedin
Condividi su facebook
Condividi su twitter
Condividi su whatsapp
Condividi su telegram
Condividi su linkedin
Condividi su facebook
Condividi su twitter
Condividi su pinterest