Questo articolo tratta alcuni step fondamentali per aumentare la sicurezza del sito WordPress. Ci sono molte cose che potete fare per una maggiore protezione del vostro sito, sia con plugin di sicurezza wordpress sia in attivando in prima persona delle pratiche come veri e propri esperti di sicurezza, o quanto meno iniziamo con i primi passi. L’obiettivo è quello di evitare gli errori più comuni per impedire che hacker e vulnerabilità possano compromettere il vostro ecommerce o il vostro blog.
Non si augura a nessuno di svegliarsi la mattina e trovare il proprio sto o quello di un vostro cliente (PEGGIO!!!) hackerato!.
Quindi oggi condivideremo con voi molti consigli, strategie e tecniche che potete utilizzare per migliorare la sicurezza di WordPress e rimanere protetti.
Come consulenza abbiamo un servizio dedicato per limitare qualsiasi possibile attacco esterno, ma ci fa piacere che anche il singolo utente possa mettersi alla prova seguendo questa semplice guida pratica per la sicurezza WordPress
Un’installazione standard di WordPress non garantisce un alto livello di sicurezza del sito, fortunatamente esistono delle procedure di non difficile attuazione per diminuire alcune vulnerabilità. Che sia un sito vetrina o un e-commerce più complesso, oggi vi scrivo alcuni passi fondamentali per rimanere protetti.
WordPress è la piattaforma più popolare per la costruzioni di siti web, di conseguenza è anche il target più succoso per gli hacker. Nella maggior parte dei casi, le criticità sono dovute al fatto che gli utenti seguono quelle che si sono dimostrate le peggiori pratiche in ambito di sicurezza.
Ad inizio 2023 Il team di sicurezza di WordPress è composto da circa 50 esperti tra cui i principali sviluppatori e ricercatori nel campo della sicurezza: circa la metà sono dipendenti di Automattic (creatori di WordPress.com, la prima e più grande piattaforma di hosting WordPress sul web).
Mancati aggiornamenti, plugin obsoleti, cattiva gestione delle credenziali, password deboli. Fondamentalmente una sicurezza del 100% non esiste, è molto difficile avere sistemi perfetti. E’ bene intendere la sicurezza come riduzione del rischio, non l’eliminazione totale dello stesso.
Come detto prima WordPress è la piattaforma maggiormente usata, pertanto quella che subiscie la maggior parte degli attacchi. Secondo uno studio effettuata da Sucuri, un’azienda specializzata nella sicurezza multipiattaforma, WordPress guida la classifica dei siti web infetti su cui ha lavorato nel corso del 2017. Come potete leggere, l’83% dei siti infetti era su piattaforma WordPress.

Ora è bene che non vi facciate spaventare da questi dati. E’ opportuno fare la giuste proporzioni. WordPress fa girare il 37,5% dei siti mondiali. Joomla e Shopify, i più vicini inseguitori, si attestano sul 2,5%. E il distacco aumenta anno dopo anno.
WordPress dispone di centinaia di migliaia di combinazioni di temi e plugin quindi non ci sorprende che le vulnerabilità esistano. Fortunatamente esiste una grande community che lavora per rimediare a queste vulnerabilità.
Introduzione finita, iniziamo subito con la pratica
Guida pratica alla Sicurezza di WordPress 2023
1. Scegliete un Servizio di Hosting WordPress Sicuro
Questo è il primo passo, il più facile ma anche uno dei più importanti. L’hosting che selezionerete è responsabile della sicurezza lato server, quindi maggiori garanzie vi darà il vostro hosting, meglio dormirete. Quindi considerate bene l’investimento da fare, esistono Hosting da 10 € l’anno, ma anche quelli da 20 € mensili. Naturalmente i costi sono distribuiti in base ai servizi offerti: Visite mensili, memoria SSD, backup giornalieri, rimozione hack e malware, area di staging, php worker, CDN, certificati SSL, connessioni SFTP e SSH, per citarne qualcuno.
Se vi state affacciando ora al mondo web e volete solo sperimentare con un sito vetrina potete accontentarvi di un hosting che vi garantisca il minimo indispensabile. Se invece il vostro sito rappresenta una percentuale importante del vostro business, bene, non risparmiate sull’hosting.
I nostri clienti che hanno deciso di investire maggiormente lato sicurezza sono ospitati su hosting premium tipo Kinsta In fin dei conti provate Site Ground che, anche con il servizio base, vi fornisce una buona infrastruttura. Oppure, se potete, puntate subito un hosting più costoso e performante, come Kinsta o Digital Ocean.
2. Utilizzate la versione più recente di PHP
WordPress è una piattaforma principalmente scritta in un linguaggio PHP, di conseguenza è molto importante che utilizziate l’ultima versione di PHP sul vostro server. Per aggiornare la versione php basta entrare nel pannello di amministrazione del vostro hosting e selezionare la versione php più recente. Ogni hosting ha un un suo metodo, ma non è mai un’operazione complessa.
Perché è importante utilizzare la versione PHP più aggiornata?
Ogni nuova release di PHP è pienamente supportata nei successivi due anni e in questo lasso di tempo gli sviluppatori propongono correzioni e miglioramenti per ovviare a bug e problemi di sicurezza di vario genere. Quindi ciò che vi deve essere chiaro è che se avete una versione php più vecchia di due anni, sappiate che non riceve più alcun supporto per la sicurezza e siete quindi più esposti ad attacchi e vulnerabilità.
Nonostante l’operazione non sia difficoltosa, secondo le fonti WordPress Satistics aggiornate al mese di Gennaio 2023 la situazione non è rosea.
Circa lil 56% dei siti ha in uso la versione php 7.4 non è più supportata dal 28 Novembre 2022. Circa il 30% dei siti addirittura usa versioni non più supportate dal 2021, nel migliore dei casi.

Il vostro sito dovrebbe quantomeno essere aggiornato alla versione php 8.0, attiva fino al 26 novembre 2023.
Una volta che avete realizzato un sito, per voi o per i vostri clienti, è importante che consideriate la manutenzione dello stesso.
Volete sapere come verificare facilmente quale sia la versione php che state utilizzando?
- Installate la plugin WP PHP Version Display oppure Display Php Version e vedrete la versione php in uso direttamente dalla vostra dashboard di wordpress.
- In alternaiva controllate sul pannello di amministrazione del vostro hosting. Troverete un menu dedicato alla versione php in uso e relativo aggiornamento.
3. usate Username e Password Intelligenti
Quali sono le password più “bucate” nel 2019 ? Sorprenidti ! ‘12345’, ‘123456’ e ‘123456789’ sono le password più frequentemente usate e rubate nel corso del 2019 relativamente a circa 6.3 milioni di account.
Fortunatamente molte installazioni di WordPress vi obbligano ad usare una password più sicura, in alternativa potete divertirvi con questo strumento online, Strong Password Generator.
Se gestite molte password vi consiglio l’uso di un tool gratuito, KeePass, per tenerle ordinate e al sicuro in locale. Altrimenti se preferite un tool online potete provare 1Password o LastPass.
Naturalmente non usate mai il nome utente predefinito “admin”. Create sempre un nuovo nome utente, con permessi di amministratore e successivamente eliminate l’utente “Admin” originale. Assicuratevi, quando fate clic su Elimina, di selezionare l’opzione “Attribuisci tutto il contenuto a” e di selezionare il vostro nuovo profilo da amministratore appena creato.
4. Aggiornate Sempre all’Ultima Versione di WordPress e relativi Plugin
Mantenete WordPress sempre aggironato, sia il core WordPress che i vostri plugin. Una buona norma quando si aggiorna wordpress o i plugin è quella di eseguire il tutto nell’area di staging, in modo che possiate controllare che non ci siano incompatibilità tra tutti gli elementi del sito. Gli aggiornamenti servono per correggere eventuali bug, migliorare la sicurezza e aumentarne le prestazioni.
Come già detto, una volta costruito il vostro sito occorre sempre un controllo costante per la manutenzione. Purtroppo è una pratica che molti non seguono, la manutenzione di un sito è comunque un fattore di costo per un cliente e non tutti ne capiscono l’importanza. Quando vi proponete coem fornitori di siti web, considerate sempre nel contratto una sezione dedicata alla manutenzione. Nel migliore dei casi vi basterà aggiornare il tutto con un click, quindi con un impegno di unità di tempo molto basso, ma considerate anche l’ipotesi opposta, magari un’incompatibilità tra plugin, che rompono il corretto funzionamento del sito. In questo caso il vostro impegno sarà di gran lunga maggiore e difficoltoso.
In realtà, i siti web si bloccano principalmente a causa di bug nelle precedenti versioni di WordPress. Le modifiche al core non sono mai consigliate dal team di WordPress e da sviluppatori esperti che comprendono i rischi che queste comportano. Gli aggiornamenti di WordPress riguardano principalmente patch di sicurezza indispensabili, insieme con le funzionalità aggiuntive necessarie per eseguire gli ultimi plugin.
Wordfence, una ditta che si occupa di sicurezza web, ha eseguito uno studio nel 2016 che mostra come le vulnerabilità dei plugin rappresentino il 55,9% dei punti di ingresso noti per gli hacker. Ripetiamolo ancora, la manutenzione è fondamentale.

Relativamente ai plugin è consigliabile installare solo quelli attendibili, che abbiano aggiornamenti recenti e con un grosso numero di installazioni. Naturalmente i plugin premium, cioè quelli a pagamento, sono ovviamente i più sicuri, ricevono aggiornamenti costanti e in linea di massima sono maggiormente ottimizzati.
Per aggiornare il core di WordPress è possibile fare clic su “Aggiornamenti” nella dashboard di WordPress e poi fare clic sul pulsante “Aggiorna ora”.
Potete anche aggiornare wordpress in maniera manuale, scaricando l’ultima versione Wordprress da qui e poi caricandola via FTP. Fate attenzione quando caricate tramite FTP nel sovrascrivere le cartelle giuste, cancellando cartelle sbagliate potreste bloccare il vostro sito.
Seguite attentamente i passaggi di questa guida per aggiornare un’installazione esistente.
L’aggiornamento dei plugin è molto simile al processo svolto per aggiornare wordpress. Potete eseguire il tutto in maniera automatica nella sezione Plugin della Dashboard o farlo in maniera manuale sempre tramite FTP. La directory delle plugin in wordpress è la seguente /wp-content/plugins/Usate il vostro miglior giudizio quando dovete scegliere i plugin. Guardate la data dell’ultimo aggiornamento (“Last updated”) e il numero di valutazioni che ha il plugin.
Inoltre, esistono molte risorse per aiutarvi a rimanere al corrente degli ultimi aggiornamenti e delle vulnerabilità nella sicurezza di WordPress. Ecco alcuni esempi qui di seguito:
- WP Security Bloggers: una fantastica risorsa aggregata di oltre 20 feed sulla sicurezza.
- WPScan Vulnerability Database: cataloga oltre 10.000 vulnerabilità del Core di WordPress Core, di temi e plugin.
- ThreatPress: database delle vulnerabilità dei temi, dei plugin e del core di WordPress, aggiornato quotidianamente.
- Official WordPress Security Archive
5. Bloccare l’accesso al Pannello di Amministrazione di WordPress
A volte la strategia popolare della sicurezza tramite segretezza di WordPress è efficace per un sito aziendale di medie dimensioni basato su WordPress. Per diminuire il rischio di essere attaccati è buona norma anche rendere più difficile agli hacker trovare backdoor o debolezze del vostro sito. Per esempio sappiamo che la pagina di login di WordPress, per dafault, è nomesito.it/wp-admin. Possiamo rendere il lavoro degli hacker un pochino più difficle andando a modificare la url di accesso a wp-admin e limitandone i tentativi di accesso. Successivamente possiamo impostare una password per accedere solamente alla pagina del log in.
La sicurezza tramite segretezza può essere un modo molto efficace per rafforzare la sicurezza di WordPress
Modifichiamo la url di accesso a WordPress
L’installazione standard di WordPress imposta l’accesso al pannello di amministrazione secondo una url predefinita: nomedominio.com/wp-admin. Di conseguenza tutti gli hacker andranno a controllare la url di accesso predefinita. Modificando l’URL avrete l’opportunità di proteggere l’0accesso al pannello di amministrazione da attacchi di tipo Brute Force. A costo di essere ripetitivo, sottolineo che ogni piccola modifica che apporterete non renderà il vostro sito a prova di bomba, ma aumenterà la sicurezza WordPress, immaginate di aggiungere un livello di dissuasione in più per il vostro hacker.
Per cambiare il vostro URL di accesso a WordPress troverete molte plugin da poter utilizzare. Ne segnalo un paio, WPS Hide login, gratuito, oppure Perfmatters, a pagamento.
Impostare entrambi i plugin risulta manovra facile. Vi viene chiesto di scrivere una nuova url in un campo di testo. Scegliete voi la difficoltà della parola o combinazione di lettere e numeri da usare e naturalmente memorizzate la nuova url. Una volta salvate le nuove impostazioni ed eseguito il log out potrete acceder alla dashboard solo dalla nuova url.
Limitiamo i tentativi di accesso al pannello di amministrazione WordPress
Possiamo impostare un limite massimo di tentativi di login vero il nostro pannello di amministrazione WordPress. Possiamo impostare un numero di tentativi di login errati oltre il quale bloccare temporaneamente l’accesso o inserire gli IP in blacklist . Provate Login Lockdown o Cerber Limit Login Attempts, le impostazioni sono elementari per entrambe le soluzioni. Login LockDown inoltre registra l’indirizzo IP e il timestamp di ogni tentativo di accesso fallito. Se vengono rilevati più di un certo numero di tentativi, che siamo noi ad impostare, in un breve periodo di tempo dallo stesso intervallo di IP, la funzione di accesso viene disabilitata per tutte le richieste da quel range di IP
Aggiungiamo un’Autenticazione Base HTTP (protezione htpasswd)
Possiamo limitare l’accesso alla pagina di login di WordPress attrraverso un modulo di richiesta user name e password. Questa pratica non dovrebbe essere utilizzata nei siti eCommerce o nei siti con iscrizioni.
Limitiamo l’accesso tramite .htpasswd, vediamo come farlo sia con Apache che con Nginx.
Con un host che utilizza cPanel potete impostare la protezione con password della direcotry di login dal proprio pannello di controllo. Occorre prima creare un file .htpasswd
. Potete utilizzare questo pratico generatore. Quindi caricate il file in una directory nella cartella wp-admin, ad esempio:
home/user/.htpasswds/public_html/wp-admin/htpasswd/
Quindi create un file .htaccess con il seguente codice e caricatelo nella directory /wp-admin/
. Assicuratevi di aggiornare il percorso della directory e il nome utente.
AuthName "Admins Only"
AuthUserFile /home/yourdirectory/.htpasswds/public_html/wp-admin/htpasswd
AuthType basic
require user yourusername
L’unico avvertimento per operare in questo modo è che si si interromperà il funzionamento di AJAX (admin-ajax) sul front-end del vostro sito. Questo è richiesto da alcuni plugin di terze parti. Quindi dovrete anche aggiungere il seguente codice al file .htaccess sopra.
<Files admin-ajax.php>
Order allow,deny
Allow from all
Satisfy any
</Files>
Se state utilizzando Nginx, potete anche limitare l’accesso con l’autenticazione base HTTP. Date un’occhiata a questo tutorial.
Abilitare la protezione .htpasswd
Dopo l’attivazione, il vostro sito WordPress vi richiederà l’autenticazione per accedere. Potete cambiare le credenziali in qualsiasi momento o disabilitarlo quando non ne avete più bisogno.
Bloccare il percorso di un URL
Se utilizzate un web application firewall (WAF) come Cloudflare o Sucuri, ricordate che questi forniscono ottime soluzioni per bloccare il percorso di un URL. Potete in pratica impostare una regola in modo tale che solo il vostro indirizzo IP possa avere accesso al vostro URL di login di WordPress. Ripetiamo, questa soluzione non dovrebbe essere implementata nei siti di eCommerce o ad iscrizione in quanto anche questi si basano sull’accesso al back-end del vostro sito.
- Cloudflare ha una funzionalità di messa in sicurezza degli URL per gli account Pro e superiori. Potete impostare una regola per qualsiasi URL o percorso.
- Sucuri ha una funzionalità di blacklist per i percorsi degli URL. Potete, così, mettere in whitelist il vostro IP.
6. Sfruttare l’Autenticazione a Due Fattori
E, naturalmente, non possiamo dimenticare l’autenticazione a due fattori! Non importa quanto sia sicura la vostra password, c’è sempre il rischio che qualcuno la scopra. L’autenticazione a due fattori prevede un processo in 2 passaggi in cui non basta inserire la password per accedere, ma è necessario un ulteriore metodo. Generalmente si tratta di un messaggio di testo (SMS), una telefonata o una password a scadenza valida una sola volta (TOTP). Nella maggior parte dei casi, questo sistema è efficace al 100% nel prevenire attacchi brute force sul vostro sito WordPress. Perché? Perché è quasi impossibile che chi attacca abbia sia la vostra password che il vostro cellulare.
Ci sono in realtà due parti quando si parla di autenticazione a due fattori. La prima è il vostro account e/o la dashboard del vostro provider di hosting web. Se qualcuno ottiene l’accesso alla dashboard, potrebbe cambiare la vostra password, eliminare i vostri siti web, modificare i record DNS e ogni sorta di orribili cose.
La seconda parte dell’autenticazione a due fattori si riferisce alla vostra installazione di WordPress. Per questo abbiamo alcuni plugin da consigliarvi:
Molti di questi hanno le proprie Authenticator App che potete installare sui vostri telefoni:
- Android Duo Mobile App
- iPhone Duo Mobile App
- Android Google Authenticator App
- iPhone Google Authenticator App
Dopo aver installato e configurato uno dei plugin qui sopra, in genere nella pagina di accesso di WordPress si presenta un campo aggiuntivo dove andrà inserito il codice di sicurezza. Oppure, con il plugin Duo, per prima cosa dovrete accedere con le vostre credenziali, quindi vi viene richiesto di scegliere un metodo di autenticazione, come Duo Push, chiamata o passcode.
Questo metodo può essere facilmente combinato con la modifica dell’URL di accesso predefinito che abbiamo esaminato in precedenza. Quindi non solo il vostro URL di accesso a WordPress lo conoscete solo voi, ma ora è necessaria un’autenticazione extra per entrare.
Quindi non rinunciate ai vantaggi dell’autenticazione a due fattori, perché può costituire una soluzione semplice per rafforzare la sicurezza di WordPress.
7. Utilizzare HTTPS per Connessioni Criptate – Certificato SSL
Uno dei modi più trascurati per rafforzare la sicurezza di WordPress è installare un certificato SSL ed far girare il vostro sito su HTTPS. HTTPS (Hyper Text Transfer Protocol Secure) è un meccanismo che consente al browser o all’applicazione web di collegarsi in modo sicuro a un sito web. Un grosso equivoco è che se non si accettano le carte di credito non è necessario SSL.
Bene, lasciateci illustrare alcuni motivi per cui HTTPS è importante al di là del semplice eCommerce. Molti host ora offrono anche certificati SSL gratuiti con Let’s Encrypt.
Naturalmente, il motivo principale per utilizzare HTTPS è la maggiore sicurezza e, certo, questo è molto importante per i siti di eCommerce. Tuttavia, quanto sono importanti le vostre informazioni di accesso? Per quelli di voi che gestiscono siti WordPress multi-autore, se si gira su su HTTP, ogni volta che una persona esegue l’accesso, tali informazioni vengono passate al server come testo normale. HTTPS è assolutamente vitale per mantenere una connessione sicura tra un sito Web e un browser. In questo modo potete prevenire meglio che hacker o intrusi ottengano l’accesso al vostro sito web.
Così anche blog, siti di notizie, agenzie, tutti possono trovare utile HTTPS, in quanto garantisce che le informazioni non passino mai in chiaro.
Google ha dichiarato ufficialmente che HTTPS è un fattore di ranking. Anche se è solo un piccolo fattore di ranking, la maggior parte di voi probabilmente trarrà vantaggio dalla SERP per battere la concorrenza.
Secondo un sondaggio di GlobalSign, il 28,9% dei visitatori cerca la barra degli indirizzi verde nel proprio browser. E il 77% di loro è preoccupato che i suoi dati vengano intercettati o male utilizzati online. Vedendo quel lucchetto verde, i clienti saranno immediatamente tranquillizzati sapendo che i loro dati sono più sicuri.
Molte persone non si rendono conto che i dati di referral da HTTPS a HTTP sono bloccati in Google Analytics. Quindi cosa succede ai dati? Bene, la maggior parte è solo accorpata nella sezione “traffico diretto”. Se qualcuno sta passando da HTTP a HTTPS, il referrer è invece sempre trasmesso.
A partire dal 24 luglio 2018, Chrome 68 e versioni superiori hanno cominciato a contrassegnare tutti i siti non-HTTPS come “Non Sicuri”. Indipendentemente dal fatto che raccolgano o meno i dati. Questo è il motivo per cui HTTPS è più importante che mai!
Questo è particolarmente importante se il vostro sito web riceve la maggior parte del suo traffico da Chrome. Potete cercare in Google Analytics nella sezione Pubblico, in Browser & Sistema operativo, per vedere la percentuale di traffico che il vostro sito WordPress riceve da Google Chrome. Google rende molto più chiaro ai visitatori che il vostro sito WordPress potrebbe non essere in esecuzione su una connessione protetta.
Non sicuro in Google Chrome
Grazie ad un nuovo protocollo chiamato HTTP/2, molto spesso, coloro che eseguono siti ben ottimizzati su HTTPS possono sperimentare aumenti di velocità. HTTP/2 richiede HTTPS per essere supportato dai browser. Il miglioramento delle prestazioni è dovuto a una serie di motivi, tra cui il miglior supporto di HTTP/2 del multiplexing, il parallelismo, la compressione HPACK con codifica Huffman, l’estensione ALPN e il server push.
E con TLS 1.3 dietro l’angolo, le connessioni HTTPS saranno ancora più veloci.
Per applicare una connessione sicura e crittografata tra voi e il server durante il login e l’amministrazione del vostro sito, aggiungete la seguente riga al vostro file wp-config.php
:
define ('FORCE_SSL_ADMIN', true)
(Lettura suggerita: se state usando versioni precedenti di TLS, potreste voler correggere le notifiche ERR_SSL_OBSOLETE_VERSION su Chrome).
8. Mettere in Sicurezza il File wp-config.php
Il vostro file wp-config.php è come il cuore e l’anima della vostra installazione di WordPress. È di gran lunga il file più importante del vostro sito per quel che riguarda la sicurezza di WordPress. Contiene le informazioni di accesso al database e le chiavi di sicurezza che gestiscono la crittografia delle informazioni nei cookie. Di seguito sono indicate un paio di cose che potete fare per proteggere meglio questo importante file.
Di default il vostro file wp-config.php risiede nella directory principale della vostra installazione di WordPress (la vostra cartella HTML /pubblic/
). Ma potete spostarlo in una directory non accessibile tramite www. Aaron Adams ha fornito una ottima spiegazione dei motivi per cui questa operazione è così importante.
Per spostare il vostro file wp-config.php
, basta semplicemente copiare tutto quello che vi è contenuto in un altro file. Quindi nel vostro file wp-config.php
potete inserire il seguente frammento che semplicemente include l’altro file. Nota: il percorso della directory potrebbe essere diverso a seconda del vostro host web e della configurazione. In genere però è semplicemente una directory sopra.
<?php
include('/home/yourname/wp-config.php');
Nota: ATTENZIONE. Su alcuni hosting non è possibile eseguire questa operazione per motivi di sicurezza interna. Possono esserci alcune restrizioni open_basedir che non consentono l’esecuzione di PHP sulla directory ~/public
per motivi di sicurezza. In questo caso la buona notizia è che sia possibile che l’hosting gestisca tutto per vostro conto bloccando l’accesso a wp-login.php
all’interno della directory ~/public
, magari con una configurazione che contenga una regola per restituire un 403 per ogni tentativo di accesso a wp-config.php
.
2. Aggiornare le Chiavi di Sicurezza di WordPress
Le chiavi di sicurezza di WordPress sono un set di variabili casuali che migliorano la crittografia delle informazioni memorizzate nei cookie dell’utente. A partire da WordPress 2.7, sono disponibili 4 chiavi diverse:
AUTH_KEY
SECURE_AUTH_KEY
LOGGED_IN_KEY
NONCE_KEY
Quando installate WordPress, queste chiavi vengono generate casualmente per voi. Tuttavia, se siete passati attraverso varie migrazioni (onsulta la nostra lista curata dei migliori plugin per la migrazione di WordPress), oppure avete acquistato un sito da qualcun altro, potrebbe essere utile creare nuove chiavi di WordPress.
WordPress offre uno strumento gratuito che è possibile utilizzare per generare chiavi casuali. Potete aggiornare le vostre chiavi correnti memorizzate nel vostro file wp-config.php file.
Le chiavi di sicurezza di WordPress
Leggete di più sulle chiavi di sicurezza di WordPress.
In genere i permessi sui file presenti nella directory principale di un sito WordPress saranno impostati su 644, il che significa che i file sono leggibili e scrivibili dal proprietario del file, leggibili dagli utenti del gruppo proprietario di quel file e leggibili da tutti gli altri. Secondo la documentazione di WordPress, le autorizzazioni sul file wp-config.php
dovrebbero essere impostate su 440 o 400 per impedire ad altri utenti sul server di leggerlo. Potete facilmente modificare questa impostazione con il vostro client FTP.
Permessi su wp-config.php
9. Disabilitare XML-RPC
Negli anni passati XML-RPC è diventato un obiettivo sempre più grande per attacchi brute force. Come affermato da Sucuri, una delle funzionalità nascoste di XML-RPC è che è possibile utilizzare il metodo system.multicall per eseguire più metodi all’interno di una singola richiesta. Questo è molto utile in quanto consente all’applicazione di passare più comandi all’interno di una singola richiesta HTTP. Ma quello che succede è che questa funzionalità è usata anche per intenti malevoli.
Ci sono alcuni plugin di WordPress come Jetpack che si basano su XML-RPC, ma la maggior parte delle persone non ne ha bisogno e può essere utile semplicemente disabilitarne l’accesso. Non siete sicuri se XML-RPC sia attualmente in esecuzione sul vostro sito web? Danilo Ercoli, del team di Automattic, ha creato un piccolo strumento chiamato XML-RPC Validator. Potete eseguire il vostro sito WordPress attraverso questo strumento per vedere se XML-RPC è abilitato.
WordPress XML-RPC validator
Per disabilitare completamente XML-RPC è possibile installare il plugin gratuito Disable XML-RPC. Oppure potete disabilitarlo con il plugin premium perfmatters, che consente anche miglioramenti delle prestazioni web.
Su alcune piattaforma avanzate questi plugin non sono necessari perché, quando viene rilevato un attacco tramite XML-RPC, viene aggiunto un piccolo snippet di codice nel file di configurazione NGINX per fermarlo mentre è in corso – generando un errore 403.
location ~* ^/xmlrpc.php$ {
return 403;
}
10. Nascondere la Versione di WordPress
Nascondere la vostra versione di WordPress concerne ancora l’argomento della sicurezza di WordPress per oscuramento. Meno persone conoscono la vostra configurazione di WordPress, meglio è. Un’installazione non aggiornata di WordPress potrebbe essere un segnale di benvenuto per intrusi. Di default, la versione di WordPress viene visualizzata nell’intestazione del codice sorgente del sito. Ancora una volta, vi consigliamo semplicemente di assicurarvi che l’installazione di WordPress sia sempre aggiornata. Facendo così non dovrete preoccuparti di nascondere la versione.
Versione di WordPress nel codice sorgente
Potete utilizzare il codice che segue per rimuovere la versione. Aggiungete semplicemente quanto segue al file functions.php
del vostro tema WordPress.Importante! La modifica del codice sorgente di un tema WordPress potrebbe bloccare il vostro sito se l’operazione non viene eseguita correttamente. Se non vi senti sicuri, vi consigliamo di contattare prima uno sviluppatore.
function wpversion_remove_version() {
return '';
}
add_filter('the_generator', 'wpversion_remove_version');
Potete anche utilizzare un plugin premium come perfmatters , che vi consente di nascondere la versione di WordPress con un clic, insieme ad altre ottimizzazioni per il vostro sito WordPress.
Nascondere la versione di WordPress con perfmatters
Un altro posto dove appare la versione di WordPress si trova nel file readme.html predefinito (come mostrato di seguito), che è incluso in ogni versione di WordPress. Si trova nella root della vostra installazione, domain.com/readme.html
. Potete tranquillamente cancellare questo file tramite FTP.
La versione di WordPress nel file readme
11. Aggiungere i Più Recenti Header HTTP di Sicurezza
Un altro passo in avanti per rafforzare la sicurezza di WordPress è l’utilizzo delle intestazioni HTTP relative alla sicurezza. Queste sono solitamente configurate a livello di server e indicano al browser come comportarsi quando gestisce i contenuti del vostr sito. Esistono molte intestazioni HTTP di sicurezza, ma quelle elencate di seguito possono essere considerate le più importanti.
- Content-Security Policy
- X-XSS-Protection
- Strict-Transport-Security
- X-Frame-Options
- Public-Key-Pins
- X-Content-Type
KeyCDN ha pubblicato un ottimo post approfondito per chi volesse saperne di più sugli header HTTP di sicurezza.
Potete verificare quali header sono attualmente attivi nel vostro sito WordPress lanciando Chrome devtools e cercando gli header nella risposta iniziale del vostro sito.
Header HTTP di Sicurezza
Potete anche eseguire la scansione del vostro sito WordPress con lo strumento gratuito securityheaders.io di Scott Helme. Questo vi mostrerà quali header di sicurezza HTTP sono al momento attivi sul vostro sito. Se non siete sicuri di come implementare gli header, potete sempre chiedere aiuto al vostro host.
Scansione degli header di sicurezza HTTP
Nota: è anche importante ricordare che quando si implementano le intestazioni di sicurezza HTTP, ciò potrebbe influire sui sottodomini di WordPress. Ad esempio, se si aggiunge l’intestazione Content Security Policy e si limita l’accesso in base ai domini, è necessario aggiungere anche i propri sottodomini.
12. Utilizzare Plugin di Sicurezza per WordPress
E ovviamente, dobbiamo ricordare alcuni plugin per la sicurezza di WordPress. Ci sono in giro molti ottimi sviluppatori e aziende che offrono grandi soluzioni per aiutare a proteggere meglio il vostro sito WordPress. Eccone alcuni.
Hosting avanzati dispongono di firewall hardware, sicurezza attiva e passiva, controlli di uptime al minuto e numerosi altri servizi avanzati per impedire agli hacker di accedere ai vostri dati. Se, nonostante i nostri sforzi, il vostro sito dovesse essere compromesso, ecco alcune funzionalità e utilizzi comuni dei plugin elencati sopra:
- Generare e forzare password complesse durante la creazione di profili utente
- Forzare le password a scadere e ad essere ripristinate regolarmente
- Log delle azioni degli utenti
- Aggiornamenti semplificati delle chiavi di sicurezza di WordPress
- Scansione malware
- Autenticazione a due fattori
- reCAPTCHA
- Firewall di sicurezza WordPress
- Whitelist degli IP
- Blacklist degli IP
- Changelog dei file
- Monitoraggio dele modifiche ai DNS
- Blocco delle reti malevoli
- Visualizzazione delle informazioni WHOIS sui visitatori
Una funzionalità molto importante di molti plugin di sicurezza è l’utilità di checksum. Vuol dire che controllano l’installazione di WordPress e cercano le modifiche sui file del core forniti da WordPress.org (tramite l’API). Eventuali modifiche a questi file potrebbero suggerire che c’è stata una violazione. Potete anche utilizzare WP-CLI per eseguire i vostri checksum.
Un altro ottimo plugin che merita una menzione d’onore è il plugin WP Security Audit Log plugin. Questo plugin è fantastico per quelli di voi che lavorano su WordPress multisite o semplicemente multi-autore. Il plugin assicura la produttività degli utenti e consente agli amministratori di vedere tutto ciò che viene modificato; cose come accessi, modifiche della password, modifiche ai temi, modifiche ai widget, nuove creazioni di post, aggiornamenti di WordPress, ecc.
È una soluzione completa per il registro dell’attività di WordPress. Nel momento in cui scriviamo, il plugin WP Security Audit Log vanta oltre 80.000 installazioni attive con una valutazione di 4,7 stelle su 5.
Security Audit Log Viewer
Il plugin dispone anche di add-on premium aggiuntive, come notifiche email, gestione sessioni utente, ricerca e report. Date un’occhiata anche a questi plugin di sicurezza WordPress che possono aiutarvi a bloccare i malintenzionati.
13. Rafforzare la Sicurezza del Database
Ci sono un paio di modi per migliorare la sicurezza del vostro database WordPress. Il primo è utilizzare un nome intelligente per il database . Se il vostro sito si chiama trucchi pallavolo, di default il vostro database di WordPress è chiamato molto probabilmente wp_trucchipallavolo. Cambiando il nome del vostro database a qualcosa di più oscuro, è possibile proteggere il vostro sito rendendo più difficile agli hacker identificare e accedere ai dati del vostro database. I ragazzi di WPMUDEV hanno scritto un piccolo grande tutorial su come cambiare il nome del vostro database su installazioni esistenti.
Una seconda raccomandazione è quella di utilizzare un diverso prefisso per le tabelle del database. Di default WordPress usa wp_. Cambiare questo a qualcosa come 39xw_ può essere molto più sicuro. Quando installate WordPress, vi viene richiesto un prefisso tabella (come mostrato qui sotto). Ci sono anche modi per cambiare il prefisso delle tabelle di WordPress su installazioni esistenti.
Prefisso tabelle WordPress – img src: jatinarora
14. Utilizzare Sempre Connessioni Sicure
Non potremo mai sottolineare abbastanza quanto sia importante l’utilizzo di connessioni sicure! Assicuratevi che il vostro host WordPress stia prendendo precauzioni come SFTP o SSH. SFTP o Secure File Transfer Protocol (noto anche come protocollo di trasferimento file SSH), è un protocollo di rete utilizzato per i trasferimenti di file. È un metodo più sicuro rispetto al consueto FTP.
Dati SFTP
È anche importante assicurarsi che il router di casa sia configurato correttamente. Se qualcuno viola la vostra rete domestica, potrebbe avere l’accesso ad ogni tipo di informazione, comprese eventualmente le informazioni rilevanti del vostro sito WordPress. Ecco alcuni semplici consigli:
- Non abilitate la gestione remota (VPN). Gli utenti comuni non usano mai questa funzione e, tenendola spenta, potete evitare di esporre la vostra rete al mondo esterno.
- I router utilizzano per impostazione predefinita gli IP in un dato intervallo, come 192.168.1.1. Utilizzate un intervallo diverso, ad esempio 10.9.8.7.
- Abilitate il massimo livello di crittografia sul vostro Wifi.
- Create una whitelist di IP per il vostro Wifi in modo tale che solo le persone con la password e determinati IP possano accedervi.
- Mantenete aggiornato il firmware del router.
E fate sempre attenzione quando accedete al vostro sito WordPress in luoghi pubblici. Ricordate, Starbucks non è una rete sicura! Prendete precauzioni come verificare l’SSID di rete prima di fare clic su Connetti. Potete anche utilizzare un servizio VPN di terze parti come ExpressVPN per crittografare il vostro traffico Internet e nascondere il vostro indirizzo IP agli hacker.
15. Controllare le Autorizzazioni su File e Server
Le autorizzazioni sui file sia per l’installazione che per il server sono fondamentali per rafforzare la sicurezza di WordPress. Se le autorizzazioni sono troppo blande, qualcuno potrebbe facilmente accedere al vostro sito e provocare il caos. D’altra parte, autorizzazioni sono troppo rigide potrebbero compromettere la funzionalità del vostro sito. Quindi è importante impostare le autorizzazioni corrette su tutta la linea.
- Read – I permessi di lettura vengono assegnati se l’utente dispone dei diritti per leggere il file.
- Write – I permessi di scrittura vengono assegnati se l’utente dispone dei diritti per scrivere o modificare il file.
- Execute – I permessi di esecuzione vengono assegnati se l’utente ha i diritti per eseguire il file e/o eseguirlo come script.
- Read – I permessi di lettura vengono assegnati se l’utente ha i diritti per accedere ai contenuti della cartella/directory identificata.
- Write – I permessi di scrittura vengono assegnati se l’utente ha i diritti per aggiungere o eliminare i file contenuti nella cartella/directory.
- Execute – I permessi di esecuzione vengono assegnati se l’utente ha i diritti per accedere alla directory ed eseguire funzioni e comandi, inclusa la possibilità di eliminare i dati all’interno della cartella/directory.
Potete utilizzare un plugin gratuito come iThemes Security per effettuare la scansione delle autorizzazioni nel vostro sito WordPress.
Scansione dei permessi sui file di WordPress
Ecco alcuni consigli tipici per quanto riguarda le autorizzazioni su file e cartelle in WordPress. Date un’occhiata all’articolo del Codex WordPress sulla modifica dei permessi sui file per una spiegazione più approfondita.
- Tutti i file dovrebbero essere 644 o 640. Eccezione: wp-config.php dovrebbe essere 440 o 400 per impedire ad altri utenti presenti sul server di leggerlo.
- Tutte le directory dovrebbero avere 755 o 750.
- Nessuna directory dovrebbe mai essere avere 777, comprese le directory degli upload.
16. Disabilitare la Modifica dei File nella Dashboard di WordPress
Molti siti WordPress hanno più utenti e amministratori, cosa che può rendere più complessa la messa in sicurezza di WordPress. Una pratica molto negativa è quella di fornire agli utenti con ruolo author o contributor l’accesso da amministratori, ma sfortunatamente, si verifica sempre. È importante dare agli utenti i ruoli e le autorizzazioni corretti in modo che non rompano nulla. Per questo motivo può essere utile semplicemente disabilitare la pagina “Aspetto – Editor” in WordPress.
Molti di voi probabilmente ci si saranno imbattuti a un certo punto. Andate a modificare rapidamente qualcosa nell’Editor dell’Aspetto, e all’improvviso vi trovate lo schermo bianco della morte. È molto meglio modificare il file localmente e caricarlo via FTP. E, naturalmente, nella migliore prassi, dovreste prima provare cose come questa su un sito di sviluppo.
Editor Aspetto di WordPress
Inoltre, se il vostro sito WordPress viene violato la prima cosa che un hacker potrebbe fare è provare a modificare un file o un tema PHP tramite l’Editor dell’Aspetto. Questo è un modo rapido per eseguire codice dannoso sul vostro sito. Se non diamo accesso all’editor nella dashboard, tanto per cominciare, è possibile prevenire gli attacchi. Inserite il seguente codice nel vostro file wp-config.php
per rimuovere le funzionalità ‘edit_themes’, ‘edit_plugins’ e ‘edit_files’ per tutti gli utenti.
define ('DISALLOW_FILE_EDIT', true);
17. Prevenire l’Hotlinking
Il concetto di hotlinking è molto semplice. Trovate un’immagine da qualche parte su Internet e utilizzate l’URL dell’immagine direttamente nel vostro sito. Questa immagine sarà visualizzata sul vostro sito web ma sarà servita dalla posizione originale. Questo è in realtà un furto poiché utilizza la larghezza di banda del sito collegato. Questo potrebbe non sembrare un grosso problema, tuttavia potrebbe generare alti costi aggiuntivi.
The Oatmeal è un ottimo esempio. L’Huffington Post ha utilizzato l’hotlink per un suo fumetto composto da più immagini, e questo ha ricevuto un conto della enorme cifra di oltre $1.000.
Il conto dell’hotlinking
Come prevenire l’Hotlinking in Apache
Per evitare l’hotlinking in Apache basta aggiungere il seguente codice al file .htaccess
.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://dropbox.com/hotlink-placeholder.jpg [NC,R,L]
La seconda riga definisce il referrer consentito – il sito che è autorizzato a collegarsi direttamente all’immagine, questo dovrebbe essere il vostro sito web. Se si desidera autorizzare più siti, è possibile duplicare questa riga e sostituire il referrer. Se volete generare regole più complesse, date un’occhiata a questo generatore di protezione di htaccess dall’hotlinking.
Come impedire l’Hotlinking in NGINX
Per evitare l’hotlinking in NGINX è sufficiente aggiungere il seguente codice al file di configurazione.
location ~ .(gif|png|jpe?g)$ {
valid_referers none blocked ~.google. ~.bing. ~.yahoo yourdomain.com *.yourdomain.com;
if ($invalid_referer) {
return 403;
}
}
Se state servendo le immagini da un CDN, la configurazione potrebbe essere leggermente diversa. Ecco alcune risorse con i provider CDN più diffusi.
18. Fare Sempre i Backup
I backup sono l’unica cosa di cui tutti sanno di aver bisogno ma che non sempre fanno. La maggior parte delle raccomandazioni riportate sopra sono misure di sicurezza che è possibile adottare per proteggersi meglio. Ma non importa quanto sia sicuro il vostro sito, non sarà mai sicuro al 100%. Quindi avrete bisogno di backup nel caso in cui succeda il peggio.
La maggior parte dei provider di hosting WordPress gestiti ora fornisce backup automatici che vi consentono di dormire tranquilli di notte. Inoltre, potete ripristinare il vostro sito con un solo clic.
Backup automatici di WordPress
Se il vostro host non offre backup, ci sono alcuni servizi e plugin per WordPress molto popolari che potete utilizzare per automatizzare il processo.
I servizi di backup di WordPress di solito hanno una tariffa mensile bassa e archiviano i backup nel cloud.
- VaultPress (dal team di Automattic)
- CodeGuard
- BlogVault
I plugin di backup di WordPress vi permettono di prelevare i vostri backup via FTP o integrarli con una fonte di archiviazione esterna come Amazon S3, Google Drive o Dropbox. Consigliamo vivamente di utilizzare una soluzione incrementale in modo da utilizzare meno risorse.
19. Protezione DDoS
DDoS è un tipo di attacco DOS in cui vengono utilizzati più sistemi per colpire un singolo sistema generando un attacco Denial of Service (DoS). Gli attacchi DDoS non sono una novità – secondo la Britannica il primo caso documentato risale ai primi anni del 2000. A differenza di un hacker che ha violato il vostro sito, questo tipo di attacchi normalmente non danneggia il sito, ma lo interrompe per poche ore o qualche giorno.
Cosa potete fare per proteggervi? Uno dei migliori consigli è quello di utilizzare un servizio di sicurezza di terze parti affidabile, come Cloudflare o Sucuri. Se gestite un’attività, può aver senso investire nei loro piani premium.
Protezione DDoS di Cloudflare e Sucuri
La loro protezione DDoS avanzata può essere utilizzata per mitigare gli attacchi DDoS di tutte le forme e dimensioni, compresi quelli che hanno come target i protocolli UDP e ICMP, nonché gli attacchi SYN/ACK, di amplidicazione del DNS e Layer 7. Altri vantaggi comprendono la possibilità di associare un proxy che aiuta a nascondere l’indirizzo IP di origine, sebbene questo non sia proprio blindato.
Date un’occhiata al nostro caso di studio su come fermare un attacco DDoS. Avevamo un cliente con un piccolo sito di e-commerce su Easy Digital Download che ha ricevuto oltre 5 milioni di richieste su una singola pagina in 7 giorni. Generalmente il sito generava solo tra 30-40 MB al giorno come consumo di banda, e un paio di centinaia di visitatori al giorno. Ma, inaspettatamente, il sito è salito istantaneamente a 15-19 GB di trasferimento dati al giorno! É un aumento del 4650%. E Google Analytics non ha mostrato traffico aggiuntivo. Quindi non va bene.
Alto consumo di banda per un attacco DDoS
Il cliente ha implementato sul proprio sito il web application firewall di Sucuri e tutta la larghezza di banda e le richieste sul sito sono state immediatamente rilasciate (come mostrato di seguito) e da allora non si è verificato nemmeno un problema. Quindi, si tratta sicuramente di un buon investimento e di un risparmio di tempo se vi imbatti in problemi come questi.
Aggiunta del firewall dell’applicazione web di Sucuri
Riepilogo
Come potete vedere, ci sono numerosi modi per aumentare la sicurezza di WordPress. L’utilizzo di password intelligenti, l’aggiornamento del core e dei plugin e la scelta di un sicuro host WordPress gestito, sono solo alcuni di quelli che manterranno il vostro sito WordPress attivo e funzionante. Per molti di voi, il sito WordPress costituisce la vostra azienda e il vostro reddito, quindi è importante prendersi del tempo e mettere in atto alcune delle migliori pratiche di sicurezza sopra menzionate.
Avete qualche consiglio importante sulla sicurezza di WordPress che ci è sfuggito? Se è così, fatecelo sapere qui sotto nei commenti.