Top

11 Suggerimenti Per Migliorare la Sicurezza di WordPress

Quando parliamo di WordPress è molto importante interessarsi anche di sicurezza. I rischi di hacker che si intrufolano negli blog creando il caos è reale. Se si dedica qualche minuto ad una ricerca svolta dal National Vulnerability Database, ci si rende conto di quanto le vulnerabilità di WordPress siano in crescita.

Il grado di vulnerabilità che si trovava a 2% nel 2004 è aumentato notevolmente fino a che nel 2007 ha raggiunto 63%. Questo non vuole essere un attacco alla piattaforma, ma una semplice attestazione del fatto che WordPress non è immune a problemi di sicurezza. Ad incrementare il suo grado di vulnerabilità probabilmente il fatto che sia molto popolare ed open source.

Ecco alcune rapide soluzioni per bloccare le porte che si possono creare durante l’installazione di WordPress e che possono portare accessi indesiderati. Alcuni di questi suggerimenti sono per utenti di livello avanzato, e sono volti a ricordare che è buona norma effettuare una copia del proprio database prima di effettuare qualsiasi operazione sul proprio database.

1 – Sicurezza nel WordPress database

WordPress richiede l’accesso a un database e non si cura che questo database sia magari condiviso con altre applicazioni web. Si dovrebbe creare un database solo per WordPress in modo che, se pure il blog venisse violato, non tutti i dati sarebbero in pericolo.

Ecco le cose che si dovrebbero fare per la creazione del database di WordPress:

  • Creare una database per WordPress. Sarebbe meglio creare un database solo per WP, senza che questo venga condiviso con altre applicazioni web.
  • Creare un utenza e concederle un accesso limitato al database. Sarebbe utile creare un utente per accedere a questa banca dati con accesso limitato ai comandi SQL (selezionare, inserire, eliminare, aggiornare, creare, modificare).
  • Scegliere una password complessa per il database. Può essere casuale, perché non hai bisogno di ricordarla.

Tutto questo si dovrebbe fare dal pannello di controllo del webhost, quando si installa il database. Ma si può effettuare il tutto attraverso questi comandi:

1 $ mysql -u root -p
2 mysql> CREATE DATABASE 'myblog';
3 mysql> GRANT SELECT, INSERT, DELETE, UPDATE, CREATE, DROP, ALTER on myblog.* to 'bloguser'@'localhost' identified BY 'mypassword';
4 mysql> flush PRIVILEGES;
5 mysql> exit;

Se si utilizza il pannello di controllo per creare il database, selezionare tra le diverse autorizzazioni i permessi utili all’utente per svolgere le operazioni necessarie.

2 – Compilare wp-config.php correttamente

Compila correttamente ogni riga in wp-config.php, non solo il primo blocco per la configurazione del database. Si consiglia di utilizzare WordPress secret key generation tool per generare chiavi casuali per i cookie di WordPress . Questi metodi sono utilizzati per assicurare meglio la crittografia delle informazioni memorizzate in WordPress.

3 – Non usare il nome utente predefinito admin

Se si installa WordPress manualmente, bisogna modificare il database. L’utente admin e la sua password sono più facilmente captabili. Nella fase di installazione ci saranno più campi da compilare ma si avrà un WordPress più sicuro.

1 $ mysql -u bloguser -p
2 Password: mypassword
3 mysql> USE myblog;
4 mysql> UPDATE wp23jk1_users SET user_login='myadm' WHERE user_login='admin';
5 mysql> exit;

È possibile utilizzare phpMyAdmin e incollare il comando SQL (in immagine sottostante) per eseguirlo.

In alternativa, è possibile modificare il valore manualmente utilizzando l’interfaccia web phpMyAdmin.

Dopo il procedimento illustrato il nome utente sarà myadm.


4 – Scegli una password sicura per l’Admin

Modificare il tuo nome utente non signigica che le persone non saranno in grado di indovinarlo. Ad esempio, il nome potrebbe essere visualizzato alla fine di ogni post, e quindi tutto il mondo potrà conoscere il nome utente dell’amministratore. In questa circostanza è richiesta la scelta di una password molto sicura per il login. Si consiglia di combinare maiuscole e minuscole, caratteri e numeri.

5 – Utilizzare il Secure Login tramite un canale cifrato

Gli utenti WordPress che hanno attivato SSL per il loro dominio dovrebbero utilizzare il canale criptato per l’accesso a WordPress. È possibile impostare le sessioni HTTPS settando a “true” la variabile FORCE_SSL_ADMIN in wp-config.php.

Copia e incolla quanto segue nel tuo wp-config.php.

1 define(‘FORCE_SSL_ADMIN’, true);

6 – Effettua aggiornamenti della versione quando sono disponibili

Quando WordPress rilascia nuove versioni, in particolare quelle che includono correzioni per la sicurezza, è consigliabile eseguire aggiornamento.

7 – Effettua spesso backup del database e dei file

Installa un plugin o utilizza cronjob per creare database e file di backup. Questo non riguarda direttamente la sicurezza, ma in caso di intrusioni, ti farà piacere avere il backup del database e dei file.

8 – Nessuna directory dovrebbe essere disponibile per la navigazione

Per impostazione predefinita, nella maggior parte dei servizi di hosting, l’indice di directory è mostrata nei web browser. Ciò significa che si rivela il contenuto di qualsiasi directory che non ha alcun index.html o index.php. Modificare questa impostazione è facile con Apache, è sufficiente aggiungere la seguente riga di codice .htaccess file nella directory root (come per il wp-config.php file).

1 Options All -Indexes

9 – Proteggere i file di amministrazione di WordPress

I file di amministrazione WordPress si trovano nella directory wp-admin al momento dell’installazione, ad eccezione di wp-config.php. Quest’ultimo contiene le configurazioni di base di WordPress, che non possono essere modificate tramite la Dashboard.

È possibile utilizzare .htaccess per limitare l’accesso e consentire solo indirizzo IP specifici per questa directory e file. Se si dispone di un indirizzo IP statico questa può essere un’opzione. Si può anche consentire l’accesso da una serie di indirizzi IP. Fare riferimento alla documentazione di Apache su mod_access per rendere più complete le istruzioni su come impostare questa funzione.

È necessario mettere un file .htaccess in wp-admin.

1
2
3
Order Deny,Allow
Allow from ww.xx.yy.zz
Deny from all

Proteggere wp-admin directory con user e password è una combinazione che aggiunge ancora più sicurezza.

1
2
3
4
AuthType Basic
AuthName "WordPress Dashboard"
AuthUserFile /home/user/.htpasswds/blog/wp-admin/.htpasswd
Require user adminuser

e quindi generare la password cifrata utilizzando il comando htpasswd.

1 $ htpasswd -cm .htpasswd adminuser

10 – Limita l’accesso ai file alla directory wp-content

La directory wp-content contiene il tema, le immagini e i plugin caricati. WordPress non accede al file PHP dei plugin e dei temi attraverso la directory HTTP. Le uniche richieste da web browser sono per i file di immagine, javascript, e per i CSS. Per questo motivo si può limitare la directory wp-content in modo tale da consentire alcune estensioni di file, ma non quelle .PHP, o altre estensioni non desiderate. Questo impedisce alle persone di accedere direttamente a qualsiasi file.

Includere le seguenti linee in .htaccess all’interno di wp-content:

1
2
3
4
5
Order Allow,Deny
Deny from all
<files  ?.(jpg|gif|png|js|css)$? ~>
	Allow from all
</files>

11. Nascondi la versione di WordPress presente nell’intestazione.

Anche se hai eliminato dai meta-data la versione di WordPress utilizzata, questa informazione la si può comunque facilmente ottenere. Questo è possibile dopo la versione 2.5 di WordPress che ha aggiunto la funzione per generare il codice. Aggiungere la seguente riga al file functions.php nella vostra directory.

1
<?php remove_action('wp_head', 'wp_generator'); ?>

Ricordiamo che pur prendendo tutti i provvedimenti citati, la sicurezza non è totale, seppure tutte queste attenzioni scoraggino gli hacker a prendere di mira un blog.

[Via]

email
Related Posts Plugin for WordPress, Blogger...

Non perdere l'opportunità di ricevere il meglio di Ziogeek!


Commenti


Fatal error: Uncaught Exception: 12: REST API is deprecated for versions v2.1 and higher (12) thrown in /home/ziogeek/public_html/wp-content/plugins/seo-facebook-comments/facebook/base_facebook.php on line 1273