WordPress e sicurezza: tecniche avanzate per rendere sicuro un sito

Condividi questo articolo:


La sicurezza di WordPress è presa molto seriamente dal suo team di sviluppo. Le patch di sicurezza e gli aggiornamenti sono spesso rilasciati per garantire che WordPress tenga il passo con un ambiente online sempre più impegnativo. Nell’ambito di questi sforzi, WordPress gestisce un programma di divulgazione responsabile delle vulnerabilità, in modo che questi problemi non vengano lasciati senza risposta.

Oltre agli sforzi del team di sviluppo di WordPress, i singoli utenti dovrebbero anche prendere misure per ridurre al minimo i rischi per la sicurezza.

Oltre ai passi di base, ci sono anche tecniche di sicurezza più avanzate che possono essere impiegate per proteggere ulteriormente il vostro sito web WordPress, così come importanti dos di sicurezza e non quando si gestisce un sito web WordPress.

Ecco alcuni consigli per rendere sicuro un sito WordPress

SFTP – Connessione al vostro server WordPress in maniera sicura

In primo luogo, è fondamentale assicurarsi che quando ci si connette al proprio server web, lo si faccia utilizzando SFTP, che è simile all’FTP, ad eccezione del fatto che la password e gli altri dati sono criptati mentre viaggiano tra voi e il vostro server. FileZilla è un’eccellente applicazione per il trasferimento di file che supporta diversi protocolli di trasferimento di file, incluso SFTP.

Prevenzione degli attacchi a forza bruta (WordPress brute forcing attack)

Gli attacchi di forza bruta si verificano quando un aggressore invia ripetutamente e sistematicamente diversi nomi utente e password per cercare di accedere a un sito Web. È importante notare che gli attacchi di forza bruta non sono endemici di WordPress. Ogni web app è suscettibile.

La prima difesa contro questo tipo di attacchi è assicurarsi che la password sia sicura. L’obiettivo finale di un attacco di forza bruta è quello di ottenere l’accesso al vostro sito web. La scelta di una password difficile da decifrare è stata discussa nel nostro precedente articolo sulla sicurezza di WordPress, quindi non ci addentreremo nei dettagli. Basta dire, assicuratevi che la vostra password sia buona. Vale anche la pena di abilitare l’autenticazione in due fasi all’interno della vostra istanza di WordPress.

Successivamente, utilizzate un plugin per limitare il numero di tentativi di login sequenziali al vostro sito. Un plugin popolare è Limit Login Attempts Reloaded, che ha più di 1 milione di download. Limita il numero di tentativi di login che sono possibili attraverso il normale login così come XMLRPC, WooCommerce e pagine di login personalizzate.

Un’altra opzione è quella di cambiare la posizione di login wp-admin. Per impostazione predefinita tutti i siti Web WordPress hanno le loro pagine di login su /wp-admin (ad es. www.examplesite.com/wp-admin.) I bot che eseguono attacchi di forza bruta prendono spesso di mira immediatamente questa pagina. Utilizzate il WPS Hide Login per tutelarvi e rendere più sicuro il vostro sito WordPress.

Come sempre, prima di installare plugin nuovi e non testati, vale sempre la pena di fare un backup del vostro sito. Anche se la maggior parte dei plugin più popolari non danneggerà il vostro sito web, c’è sempre la possibilità di un’incompatibilità. Un backup ti dà la tranquillità di sapere che qualsiasi danno fatto da un plugin errante può essere invertito in modo semplice e veloce.

WordPress Admin Autenticazione HTTP

È possibile bloccare ulteriormente il WP Admin aggiungendo l’autenticazione HTTP di base. Questo processo richiederà all’utente di inserire un nome utente e una password prima ancora di raggiungere la pagina di accesso a WP Login, che può aiutare a fermare i bot brute force nelle loro tracce.

Per fare questo, sarà necessario creare un file .htpasswd. Provate ad usare una grande risorsa gratuita di Hosting Canada per fare questo. Dovrai inserire il nome utente che vorresti usare insieme ad una password, selezionare un metodo di crittografia dal menu a tendina e cliccare su ‘Genera password’. Viene generata una lunga stringa di testo. Copiare e incollare questa in un nuovo file di testo. Salvare questo file semplicemente come ‘.htpasswd’.

Successivamente, accedere al server e dirigersi alla cartella wp-admin di WordPress. Aprite questo e in wp-admin create una nuova cartella chiamata ‘htpasswd’. Poi caricate il vostro file .htpasswd che abbiamo creato in precedenza in questa cartella. Dovete trasferire i vostri file usando solo la modalità ‘ASCII’ e non la modalità ‘BINARY’.

La fase finale è quella di creare un nuovo file che contiene quanto segue:

AuthName "Admins Only"
AuthUserFile /home/public_html/wp-admin/htpasswd/.htpasswd
AuthType basic
Require user yourusername

<Files admin-ajax.php>
    Order allow,deny
    Allow from all
    Satisfy any
</Files>


Sarà necessario aggiornare la posizione di AuthUserFile con l’URL della directory completa del file .htpasswd e il nome utente con il nome utente utilizzato per il file .htpasswd. Salvate questo file come .htaccess e caricate questo file .htaccess nella vostra cartella wp-admin sul vostro server, e questo è tutto. La prossima volta che accedi al tuo sito su www.examplesite.com/wp-admin ti verranno richiesti il tuo nome utente e la password prima che venga visualizzata la schermata di accesso di WordPress Admin.

Suggerimento utile: se non si conosce l’url della directory completa del file .htpasswd, un trucco pratico è quello di utilizzare un piccolo script PHP:

<?php
    echo "Absolute path: ", getcwd();
?>

Creare un file che contenga questo script chiamato testpath.php e caricarlo nel file htpasswd e poi visitare questo url (ad es. www.example.com/wp-admin/htpasswd/testpath.php) per ottenere il percorso completo del file .passwd. Questo aiuterà il vostro sito WordPress ad essere più sicuro.

WordPress e  wp-include

Ci sono script specifici inclusi nell’installazione di WordPress che non sono destinati ad essere accessibili. Essi offrono, tuttavia, un possibile percorso nel vostro sito da parte degli hacker. Per questo motivo, può valere la pena di bloccarli. È possibile bloccare l’accesso a questi file con un mod_rewrite nel file .htaccess. Per fare questo, aggiungete il seguente codice al vostro file .htaccess (tipicamente situato nella root del documento del vostro sito WordPress) al di fuori dei tag # BEGIN WordPress e # END WordPress; altrimenti WordPress potrebbe sovrascriverlo:

# Block the include-only files.
<IfModule mod_rewrite.c>
    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]
</IfModule>
 
# BEGIN WordPress

Disattivare la modifica dei file di WordPress per rendere più sicuro il vostro sito web

Molti aspetti della sicurezza di un sito web WordPress ruotano intorno al rendere la vita più difficile a un potenziale hacker. Allo stesso modo un ladro cercherà una casa in una strada non illuminata senza allarmi o luci di sicurezza, un hacker preferisce prendere di mira un sito web che manca di caratteristiche di sicurezza di base piuttosto che uno in cui le metaforiche finestre e porte sono saldamente chiuse.

Per impostazione predefinita, WordPress permette agli amministratori di modificare i file PHP come temi e plugin all’interno del Dashboard. Poiché questa caratteristica permette l’esecuzione del codice, è un obiettivo ovvio per un hacker. Per la maggior parte degli sviluppatori web, le modifiche al codice vengono effettuate con un editor di testo come Sublime piuttosto che dall’interno del Dashboard. Ha senso “bullonare” questa particolare finestra di WordPress e, così facendo, rimuovere un altro potenziale punto di accesso per un hacker.

Per fare questo, inserire questa linea di codice nel file wp-config.php. Questa linea rimuove le capacità ‘edit_themes’, ‘edit_plugins’ e ‘edit_files’ di tutti gli utenti:

define(‘DISALLOW_FILE_EDIT’, true);

Anche se questo non impedirà a un hacker di caricare file dannosi sul vostro sito, contribuirà a fermare alcuni attacchi e a rendere il vostro sito WordPress più sicuro.

Utilizzare un firewall per rendere più sicuro il vostro sito WordPress

Un firewall è un ottimo modo per evitare che un aggressore raggiunga il vostro sito web WordPress. Ci sono un paio di opzioni:

Diversi buoni plugin per firewall funzionano limitando l’accesso a livello di server Apache prima che WordPress lo elabori. Un buon esempio è All In One WP Security & Firewall o WordFence. Entrambi cercano di filtrare le richieste in arrivo per garantire che nessun traffico dannoso possa colpire l’installazione di WordPress. L’utilizzo di un firewall o di uno dei plugin citati sopra contribuirà a rendere più sicuro il vostro sito WordPress.

Firewall intermedi

I plugin come WordFence filtrano il traffico a livello di server. Un approccio alternativo è quello di intercettare il traffico che si dirige verso il vostro server prima di controllarlo e poi inviare la richiesta al vostro server utilizzando un prodotto come Cloudflare. Questo approccio è popolare perché tutto quello che dovete fare è modificare i vostri record DNS per inviare il traffico attraverso un intermediario senza che siano necessarie modifiche al vostro server.

Prossimi passi

La sicurezza di WordPress rimane un argomento popolare. Se tutto questo vi sembra un lavoro duro, allora prendete in considerazione l’utilizzo di un host WordPress gestito come Pressidium, che può fare molto per voi. E infine, prendete regolarmente dei backup del vostro sito web in modo da poter dormire bene la notte con la consapevolezza di poter sempre ripristinare il vostro sito.

Date un occhiata anche a questo articolo se volete saperne di più sulla sicurezza di WordPress

Come hackerare un sito Web WordPress usando WPScan e Metasploit con Kali Linux

Condividi questo articolo: