WordPress – Rendere sicuro il sito dagli attacchi di hacker

WordPress è un cms che ha raggiunto una diffusione enorme negli ultimi anni, al punto che è usato da diversi utenti, neofiti o meno, per creare siti sia di livello elementare che di carattere professionale. Esistono temi, plugin e widget gratuiti sparsi per la rete.

La sua gratuità e il suo codice libero sono un’ottima cosa, perché permettono agli esperti di personalizzare le pagine discostandosi dalle caratteristiche base e di offrire agli altri plugin a costo zero. Tuttavia, proprio il suo essere libero è anche motivo di preoccupazione in alcuni casi.
Un eventuale cracker (la versione “cattiva” degli hacker) può studiarsi il codice di un tema che magari è stato mal costruito e trovare un buco nel quale entrare. Oppure può “allungarvi” un plugin da lui costruito per sottrarvi dati preziosi o per arrivare persino al database.

Una delle accortezze di base è quella di scegliere siti ufficiali da cui scaricare il materiale gratuito. Ma esistono anche tecniche a portata di mano che permettono di migliorare la sicurezza in WordPress. Sono in realtà tecniche che si consigliano per qualsiasi sito: nascondere le informazioni che non devono essere mostrare, impedire l’accesso in determinate zone, ecc.

Vediamo la lista, che ho recuperato dopo uno studio in rete su diversi siti specifici.

Permessi, prefisso delle tabelle, username e password sicure

Partiamo dalle basi.
Prima di tutto, è buona norma modificare il prefisso delle tabelle che WordPress ci propone (“wp_”). In questo modo l’intruso, se raggiunge il database, non può conoscere il nome esatto delle tabelle da estrarre. Se il danno è già fatto, cioè avete installato il cms mantenendo il prefisso tabelle proposto, potete modificarlo in un secondo momento agendo direttamente nel database e modificando il nome di ogni singola tabella con questa query:

1
RENAME table 'nomeTabella' to 'nuovoNome'

Seconda cosa, fondamentale è la modifica di username e l’uso di password sicure. Non usate il classico username “admin” per entrare, usatene uno personalizzato, e adoperate password possibilmente complesse (le solite raccomandazioni: uso combinato di numeri, lettere maiuscole e minuscole e simboli; soprattutto, non usate parole che si possono recuperare dal comune vocabolario).

Ancora meglio sarebbe modificare l’id del record che corrisponde all’utente amministratore. Poiché è il primo utente creato, l’admin avrà un ID=1 . Una cosa semplice è assegnargli nella tabella del database un ID differente.

Infine, è buona cosa modificare i permessi dei singoli file e cartelle: tolte particolari esigenze, i permessi dei file dovrebbero essere settati a 644, mentre quelli delle cartelle a 755.

Impedire l’accesso ai file più importanti

Il file config.php contiene i parametri di accesso al database. Se un cracker riesce ad aprirlo, avrà libero accesso a ogni vostro dato. Il modo più semplice per impedire l’accesso al file di configurazione è tramite l’htaccess. Aprite il file .htaccess presente nella root del sito e inserite queste righe (fatevi sempre un backup dell’htaccess, per eventuali malfunzionamenti):

1
2
3
4
<files wp-config.php>
order allow,deny
deny from all
</files>

Dopodiché, nessuno potrà accedervi direttamente attraverso l’uso di un codice.


Un altro file “caldo” è quello di login, che un malintenzionato potrebbe modificare, dirottando la destinazione dell’accesso verso una sua pagina e catturandovi così i dati immessi (username e password). Se accedete sempre con lo stesso indirizzo IP, inserite nell’htaccess queste righe (avendo cura di modificare gli ultimi numeri con il vostro indirizzo IP):

1
2
3
4
5
<files wp-login.php>
Order deny,allow
Deny from All
Allow from 262.263.264.0
</files>

Ancora, è utile impedire l’accesso a tutte quelle cartelle che sono prive del file “index.php” (e che quindi non dovrebbero mai essere direttamente accessibili). All’inizio dell’htaccess scrivete:

1
Options -Indexes

Protezioni più avanzate

WordPress mette a disposizione delle chiavi segrete per crittografare i cookies. Per inserirne di personalizzate, aprite il file config.php e cercate la riga dove viene definita la costante (al posto di “stringa_di_sicurezza” troverete una lunga stringa alfanumerica e simbolica):

1
define('AUTH_KEY', 'stringa_di_sicurezza');

La stringa_di_sicurezza deve essere sostituita con quella che potete recuperare al seguente indirizzo:
https://api.wordpress.org/secret-key/1.1/salt/

Un sistema ancora più efficiente in campo di sicurezza è l’uso del protocollo https. Il vostro dominio deve poter disporre di un certificato SSL, naturalmente, ma accedere nel pannello di amministrazione via “https” (invece che “http”) significa che i dati da voi inseriti saranno crittografati e pertanto più difficili da recuperare da un cracker.

Fonti esterne

Un ottimo articolo su Your Inspiration Web sulla sicurezza in WordPress

Lascia un commento

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