Proteggere WordPress: 5 elementi essenziali per proteggere il vostro sito
Punti chiave in sintesi
- Verifica di temi e plugin: Verificate i temi e i plugin prima dell'installazione per evitare rischi di sicurezza; preferite il download dal repository ufficiale di WordPress o da fonti affidabili.
- Modifica dell'URL di accesso e del Captcha: proteggete WordPress dagli attacchi brute force modificando l'URL di accesso e aggiungendo un captcha alla pagina di accesso utilizzando plugin come WPS Hide Login e hCaptcha.
- Disabilitazione dell'API REST per gli utenti non autorizzati: Impedire l'accesso non autorizzato ai nomi utente disabilitando l'API REST per gli utenti non autorizzati, garantendo al contempo la funzionalità per gli editor e gli amministratori autorizzati.
- Disabilitazione della navigazione nelle directory: Disattivare l'esplorazione delle directory per impedire agli hacker di accedere alle strutture dei file e trovare vulnerabilità nei plugin e nei temi.
- Negare l'accesso alla cartella .git: Proteggete il codice sorgente del vostro sito web negando l'accesso alla cartella .git, comunemente usata dagli sviluppatori, attraverso la configurazione del server.
- Negare l'accesso al file xmlrpc.php: proteggete WordPress dagli attacchi di forza bruta delle password negando l'accesso al file xmlrpc.php, che costituisce un punto di ingresso per gli aggressori.
Indice dei Contenuti
Alcune persone si sentono pigre quando si parla di sicurezza e non seguono le istruzioni di base. Ovviamente, finché il loro sito web non verrà violato. Altri diventano pazzi e bloccano tutto ciò che è possibile, peggiorando l'esperienza dell'utente. Adottiamo la via di mezzo e proteggiamo WordPress dalle minacce più frequenti, ma senza diventare paranoici. Seguire questi consigli vi eviterà di utilizzare pesanti e costosi plugin di sicurezza.
Base per i principianti
Qui devo dire due parole su cose molto basilari che riguardano la sicurezza. Le prossime informazioni sono solo per i principianti, se vi sentite sicuri nelle questioni di sicurezza di base saltatele pure.
Quindi, dovete sapere che la maggior parte delle violazioni non avviene a causa di vulnerabilità nel codice, ma a causa di errori grossolani nell'uso del software. Leggete cosa deve sapere un buon sviluppatore di WordPress per capire cosa dovete imparare per usare WordPress in modo corretto.
Password
1. Non utilizzate password deboli
Ogni password deve contenere più di 16 caratteri casuali, compresi i caratteri speciali. Gli hacker dispongono di elenchi di frasi comunemente utilizzate e le usano per gli attacchi brute-force. Possono facilmente accedere al vostro pannello di amministrazione, se la vostra password non è una stringa casuale. Non utilizzate mai e poi mai nomi o parole nella vostra password.
2. Non condividete le password con terze parti
Anche con gli sviluppatori. Se dovete far fare del lavoro a loro, create per loro un account separato. E cambiate sempre la password di quell'account dopo che hanno svolto i loro compiti.
3. Conservate le password in un luogo sicuro
Scrivere su carta è una cattiva idea. Anche la memorizzazione nei servizi online può essere una cattiva idea. Il caso migliore è quello di utilizzare un'applicazione offline. Esistono molti programmi che consentono di memorizzare le password in modo sicuro. Ad esempio, la nostra agenzia per conservare tutte le credenziali, compresi i clienti, utilizza KeePassXC.
4. Non condividete le password attraverso canali non sicuri
Fatelo tramite canali sicuri o cambiate la password poco tempo dopo la condivisione. Anche se dovete condividere una password con il vostro cliente, chiedetegli di cambiarla dopo averla ricevuta. I canali Slack o messenger non sono adatti a questo scopo.
Un canale sicuro non significa offline. Può trattarsi di vari servizi, che forniscono un link unico, o anche di un fornitore di posta elettronica, come Proton, che fornisce e-mail protette da password.
Temi e plugin non verificati
È l'errore più comune dei principianti. Vedono quante opzioni ci sono per personalizzare un sito web e iniziano a installare tutti i plugin e a provare tutti i temi che si possono trovare. Di solito, preferiscono quelli gratuiti o nulled (hackerati). La maggior parte di questi plugin conterrà virus o vulnerabilità, è il prezzo dell'accessibilità.
Se parliamo di plugin gratuiti, potete proteggere il vostro WordPress scaricando i plugin SOLO dal repository ufficiale di WordPress. Oppure dalla voce Plugin integrata nel menu di amministrazione di WordPress, che è la stessa. Inoltre, controllate il numero di installazioni attive, che deve essere superiore a 100. E fate attenzione alla data dell'ultimo aggiornamento, che deve essere inferiore a un anno fa.
Se parliamo di plugin Pro a pagamento, assicuratevi di acquistare su un sito ufficiale e che ci siano recensioni indipendenti che confermino la qualità del plugin. Di sicuro, non dalle parole sul loro sito web, ma da altre risorse.
Verificare le cose prima dell'installazione è un'abilità molto importante. Un tema o un plugin scadente non solo rende il vostro sito web insicuro, ma lo rallenta anche.
5 consigli per proteggere WordPress
1. Cambiate l'url di accesso e aggiungete un captcha
La forza bruta delle credenziali di accesso è la pratica più frequente degli hacker. Inviano centinaia di richieste al vostro sito web tramite la pagina di login. Anche se si dispone di una password forte, si crea comunque un carico supplementare sul sito web. Inoltre, se siete uno sviluppatore, non potete garantire che il proprietario o i suoi redattori non utilizzino password deboli. Questo passo sarà un ulteriore livello di protezione degli account di amministrazione.
Per proteggere WordPress dalla forza bruta, utilizziamo il plugin WPS Hide Login per cambiare l'url di accesso. Può essere fatto facilmente e, inoltre, non cambierà l'url di amministrazione per gli utenti autorizzati. Quindi blocca solo wp-admin e wp-login.php dagli utenti non autorizzati; gli editor e gli amministratori devono visitare un nuovo url per effettuare il login e poi possono usare il normale wp-admin per accedere al pannello di amministrazione.
È possibile utilizzare il plugin hCaptcha o Simple Google Captcha per aggiungere un captcha alla pagina di login. Entrambi funzionano bene con il plugin di cui sopra e aggiungono un captcha tramite ganci di codice. Ciò significa che funzionano con qualsiasi URL di accesso personalizzato. Si consiglia di utilizzare il plugin hCaptcha, poiché il servizio rispetta la privacy degli utenti, a differenza di Google Captcha.
Entrambi i plugin aggiungono il codice captcha, ma non registrano un account di servizio per l'utente. È necessario registrarsi e ottenere le credenziali da hCaptcha.com o da Google ReCaptcha, a seconda del plugin scelto.
2. Disabilitare l'API REST per gli utenti non autorizzati
L'API REST consente di ottenere un elenco di nomi utente senza problemi. Gli hacker dovranno comunque ottenere una password, ma ehi, rendiamogli la vita ancora peggiore. Inoltre, anche i nomi (username) dei redattori del vostro sito web possono essere parte di informazioni private, qual è l'obiettivo di condividerle con il mondo intero? L'API REST è utilizzata in WordPress, ad esempio dall'editor Gutenberg (e da diversi plugin), quindi la sua completa disattivazione interromperà il lavoro di un sito WordPress.
La via di mezzo è la disabilitazione dell'API REST per gli utenti non autorizzati. Non creerà alcun problema agli editor e agli amministratori autorizzati, ma proteggerà WordPress dalla fuga dei nomi utente verso facce di terzi.
A tale scopo utilizziamo il plugin Disable REST API che, per impostazione predefinita, è configurato in modo da disabilitare solo gli utenti non autorizzati, per cui è sufficiente abilitare il plugin senza effettuare ulteriori passaggi.
3. Disattivare la navigazione nelle directory
L'esplorazione delle directory è una funzione insicura, che consente di vedere un elenco di file in una cartella richiesta tramite il browser, nel caso in cui il file 'index.php' sia mancante. Per trovare vulnerabilità nei vostri plugin e temi, gli hacker devono conoscere la struttura dei loro file.
WordPress ha il file index. php per tutte le cartelle di base, come /wp-content/, /wp-content/plugins/ e /wp-content/themes/, ma non può garantire che ogni sviluppatore di plugin o temi faccia lo stesso. Per questo obiettivo, è necessario assicurarsi che il server web non consenta la navigazione nelle directory.
Provate a visitare YOUR_DOMAIN/wp-includes/ nel vostro browser. Se viene visualizzato il messaggio "Not Found" (non trovato), significa che il vostro server non lo consente già, potete saltare questo punto. Nel caso in cui venga visualizzato un elenco di file, è necessario eseguire azioni aggiuntive per disabilitare la navigazione nelle directory.
Per farlo, è necessario modificare il file .htaccess. Non consiglio di modificare questo file via FTP, come molti altri. A causa del fatto che questo file viene regolarmente ricreato da molti plugin. Ad esempio, tutti i plugin di cache o simili. Ciò significa che molto probabilmente la vostra modifica andrà persa dopo qualche tempo. Possiamo aggiungere la nostra modifica in modo permanente con il seguente frammento di codice, da aggiungere al vostro functions.php:
add_filter('mod_rewrite_rules', function ($rules) {
return $rules . "\n" .
"#Disable directory browsing\n" .
"Options -Indexes\n";
});
Quindi visitate la pagina Impostazioni-Permalink nel vostro pannello di amministrazione, che costringerà WordPress a ricreare immediatamente il file .htaccess. Successivamente, è possibile visitare nuovamente YOUR_DOMAIN/wp-includes/ per verificare che ora venga visualizzato il messaggio 404 (il che è positivo).
4. Negare l'accesso alla cartella git
Saltate questo passaggio se utilizzate un hosting semplice o se avete caricato il sito web manualmente, senza GIT.
Molti sviluppatori usano GIT, che è uno strumento meraviglioso. Anche l'uso di GIT in produzione è una buona idea, ma in questo caso è necessario disabilitare l'accesso alla cartella .git tramite browser. Altrimenti, utilizzando il file .git/HEAD saranno in grado di ricreare tutto l'albero dei commit e ottenere il codice sorgente del vostro sito web.
Per questo obiettivo, è necessario bloccare tutte le /.git/* richieste. Si può contattare l'amministratore di sistema o il provider di hosting. Se avete abbastanza competenze e il vostro server utilizza NGINX, potete raggiungere l'obiettivo aggiungendo il seguente codice (da aggiungere al file di configurazione NGINX del vostro sito web)
# deny access to all special files and folders, like .git, .htaccess
location ~ /\. {
deny all;
}
Non dimenticare di riavviare NGINX.
5. Negare l'accesso al file xmlrpc.php
XML-RPC è una vecchia funzione di WordPress. La maggior parte dei siti web non la usa ed esiste solo per la compatibilità con i vecchi software. Questa funzione consente di interagire con il vostro sito web direttamente, senza aprirlo in un browser. La cosa negativa è che gli hacker possono forzare le password utilizzando questa funzione, perché anche se avete cambiato l'url di accesso e aggiunto un captcha con i passaggi precedenti, questa funzione offre ancora la possibilità di controllare le password.
Per negare l'accesso al file è possibile contattare l'amministratore di sistema o il provider di hosting. Se siete abbastanza abili, di seguito vi forniamo degli snippet che lo faranno:
NGINX
Se il vostro server utilizza NGINX, potete raggiungerlo aggiungendo il seguente codice (da aggiungere al file di configurazione NGINX del vostro sito web):
# wordpress xmlrpc
location /xmlrpc.php {
deny all;
}
Non dimenticare di riavviare NGINX.
DirectAdmin
Se il vostro server dispone del pannello di controllo DirectAdmin, potete collegarvi al vostro server tramite SSH e raggiungere l'obiettivo eseguendo i seguenti comandi;
// 1. create the custom folder in the directadmin config
cd /usr/local/directadmin/data/templates
mkdir custom/; cd custom
// 2. create the necessary files in the folder and setup rights
touch nginx_server.conf.CUSTOM.4.post nginx_server_secure.conf.CUSTOM.4.post
touch nginx_server_secure_sub.conf.CUSTOM.4.post nginx_server_sub.conf.CUSTOM.4.post
chmod 644 nginx_server.conf.CUSTOM.4.post nginx_server_secure.conf.CUSTOM.4.post
chmod 644 nginx_server_secure_sub.conf.CUSTOM.4.post nginx_server_sub.conf.CUSTOM.4.post
// 3. enter the edit mode for the new (created) config
nano nginx_server.conf.CUSTOM.4.post
// and and the content below to the file
// this is the rule that will lock the xmlrcp file
location =/xmlrpc.php
{
deny all;
}
// 4. copy the main config to the others
cp -p nginx_server.conf.CUSTOM.4.post nginx_server_secure.conf.CUSTOM.4.post
cp -p nginx_server_secure.conf.CUSTOM.4.post nginx_server_secure_sub.conf.CUSTOM.4.post
cp -p nginx_server_secure_sub.conf.CUSTOM.4.post nginx_server_sub.conf.CUSTOM.4.post
// 5. make the build
cd /usr/local/directadmin/custombuild/
./build rewrite_confs
Conclusioni
Abbiamo passato in rassegna i 5 passi più importanti per proteggere WordPress dagli hacker. In realtà, i passaggi 3-5 possono essere eseguiti dall'amministratore di sistema (o dal provider di hosting) una sola volta e funzioneranno per tutti i siti web del vostro account. Dopo averli eseguiti, potete essere certi di avere un ottimo livello di protezione e di non dover acquistare plugin di sicurezza, che spesso sono pesanti e rallentano un sito web.
Thank you for reading! to our monthly newsletter to stay updated on the latest WordPress news and useful tips.
Stuck with development or facing an issue?
WPLake offers affordable on-demand website development and design.
No matter the size of your project - contact us now, and we'll get it done for you!
Domande frequenti Testate le vostre conoscenze
Modalità FAQ
/
Modalità di apprendimento
- Come posso condividere in modo sicuro le password con sviluppatori terzi?
Creare account separati per gli sviluppatori e cambiare la password dopo aver completato le attività per mantenere la sicurezza.
- Perché è essenziale verificare temi e plugin prima dell'installazione?
La verifica di temi e plugin garantisce che provengano da fonti affidabili, riducendo il rischio di vulnerabilità e violazioni della sicurezza.
- Quali misure posso adottare per prevenire gli attacchi brute-force sulla mia pagina di login di WordPress?
La modifica dell'URL di accesso e l'aggiunta di un captcha alla pagina di accesso utilizzando plugin come WPS Hide Login e hCaptcha possono scoraggiare gli attacchi brute-force.
- Come posso proteggere le informazioni sensibili, come i nomi utente, dall'accesso di utenti non autorizzati?
La disabilitazione dell'API REST per gli utenti non autorizzati impedisce l'accesso ai nomi utente, mantenendo la funzionalità per gli utenti autorizzati.
- Quali misure posso adottare per proteggere il codice sorgente del mio sito web quando utilizzo GIT in produzione?
La negazione dell'accesso alla cartella .git attraverso la configurazione del server garantisce la sicurezza del codice sorgente.
- Come posso migliorare ulteriormente la sicurezza di WordPress negando l'accesso a file specifici?
Negando l'accesso a file come xmlrpc.php si evitano potenziali punti di ingresso per gli aggressori, rafforzando la sicurezza complessiva del sito web.