fb-pixel

Migliorare la sicurezza di WordPress

Pubblicato in:

by:

Mettere in sicurezza WordPress dovrebbe essere una delle prime preoccupazioni per chiunque abbia un sito web. Ogni settimana Google mette nella sua blacklist 20.000 siti per malware e 50.000 per phishing. Se lavori con il tuo sito web devi porre attenzione alla sicurezza del tuo sito web. Oggi condivideremo con te i migliori sistemi per proteggere il tuo sito web WordPress contro attacchi hacker e malware.

Il core di WordPress, a differenza di quello ch e tanti dicono, è molto sicuro e viene rivisto costantemente da centinaia di sviluppatori. Di solito la maggiore vulnerabilità di WordPress è proprio l’utente che a causa di pratiche errate crea dei problemi alla sicurezza di WordPress.

In questo articolo andiamo a vedere cosa possiamo fare per evitare di creare vulnerabilità nel nostro sito WordPress e cosa possiamo fare per rendere la nostra installazione WordPress ancora più sicura.

Table of Contents

WordPress è sicuro?

Stando alle statistiche di sucuri, un’azienda che lavora nel campo della sicurezza online, l’83% dei siti infetti con cui loro hanno lavorato sono siti WordPress.

Certo dobbiamo tenere in conto che WordPress è la base usata per la realizzazione del 33% dei siti web presenti su internet. Inoltre non è una sorpresa che esistano delle vulnerabilità dal momento che ci sono sul mercato migliaia di temi WordPress e plugin.

La community di WordPress è molto attiva e il “WordPress Security Team” conta 50 esperti di sicurezza che lavorano costantemente per mantenere sicuro il famoso CMS.

I problemi più comuni che portano un sito ad essere hackerata sono solitamente dovuti a cattive pratiche da parte dell’utente o dell’hosting. In uno dei seguenti punti vedremo cosa fa SupportHost per proteggere al massimo il tuo sito web.

Tra queste pratiche citiamo:

  • utilizzo di vecchie versioni di WordPress con vulnerabilità conosciute
  • utilizzo di temi e plugin nulled
  • amministrazione di sistema fatta in modo errato
  • cattiva gestione delle password
  • scarse conoscenze tecniche da parte dell’utente che lo porta a compiere errori banali

Controlla anche il nostro articolo sulle statistiche di WordPress (aggiornate al 2023) per conoscere quante vulnerabilità sono state identificate negli ultimi anni.

Perché la sicurezza del tuo sito WordPress è importante?

Se il tuo sito viene hackerato la tua attività ne risente, ma anche la tua reputazione. Gli hacker possono rubare informazioni sui tuoi utenti/clienti, rubare le password, installare software malevolo o distribuire malware ai tuoi utenti.

In qualche caso potresti ritrovarti a dover pagare un hacker per poter ottenere nuovamente accesso al tuo sito web.

Alla luce dei numeri di cui ho parlato qui sopra, se il tuo sito rappresenta la tua azienda e lo usi per creare un reddito devi prestare una particolare attenzione alla sicurezza della tua installazione WordPress.

Cos’è la sicurezza?

La sicurezza non è un concetto assoluto ma un processo continuo, e deve essere targato come tale. Non è possibile eliminare il rischio, questo non sarà mai nullo, ma possiamo ridurlo.

La sicurezza non si riferisce soltanto a WordPress, ma devi rendere sicuri anche il tuo ambiente locale, i processi che usi e quello che fai online. La sicurezza si divide in tre settori: persone, processi e tecnologie. Questi tre settori devono lavorare in sinergia per garantire il massimo della sicurezza.

Concetti base sulla sicurezza

Ci sono dei concetti base sulla sicurezza di cui dovresti essere a conoscenza prima di avventurarti nell’argomento che stiamo per trattare nel dettaglio: la sicurezza di WordPress. Questi concetti sono di importanza critica per capire ed implementare i passi descritti in questa guida.

Least Privilege Principle

Quando si configura un’applicazione web, nel nostro caso specifico WordPress, ogni applicazione o utente deve poter acceder soltanto alle risorse necessarie, e niente di più. In altre parole non dobbiamo dare dei permessi maggiori rispetto a quelli necessari ad un utente. Ad esempio se un utente del tuo blog deve soltanto modificare i post non ha senso dargli i privilegi di amministratore.

Accesso Negato

Il Least Privilege Principle prevede di fornire alle persone l’accesso minimo richiesto per svolgere la loro funzione e solo per il tempo necessario a compiere il loro lavoro. Una volta completato il lavoro l’accesso deve essere riportato ad un livello appropriato. WordPress ha già dei ruoli utente di default, ognuno con permessi diversi, facilitandoti il compito di assegnare ad ogni utente i privilegi necessari.

Difesa in Profondità

Questa idea si basa sul fatto che non esiste una sola soluzione per tutti i problemi di sicurezza. Si propone quindi l’uso di un approccio a livelli complementari tra loro, disegnati per coprire i deficit dell’altro livello. Usando livelli multipli di sicurezza se una di queste misure di sicurezza viene superata l’attacco viene fermato al livello successivo, o almeno viene rallentato e scoperto in tempo.

Usare una sicurezza a livelli di questo tipo si traduce in una soluzione del tipo: utilizzo di un firewall per mitigare gli attacchi esterni, usare una scansione di sicurezza per individuare e bloccare quegli attacchi che superano il firewall, usare diversi tipi di autenticazione.

Sicurezza Sotto Controllo

Andiamo oltre i concetti teorici e usiamo questi controlli nella pratica. Per proteggere il nostro sito mettendo in sicurezza WordPress ci atterremo ai seguenti punti:

  • Limita l’accesso: riduci al minimo il numero di persone che hanno accesso amministrativo al tuo sito web. Dovresti anche ridurre al minimo il numero di “entry point”, ovvero eliminare tutte le applicazioni web che non usi e rimuovere temi e plugin che non utilizzi.
  • Isolamento funzionale: il tuo sistema deve essere impostato in modo da ridurre al massimo il danno che può essere causato in caso venga compromesso. Con SupportHost tutti gli account sono isolati, quindi non è possibile attaccare un altro account partendo da un account infetto. È consigliabile evitare di usare diverse applicazioni sullo stesso account hosting (ad esempio noi abbiamo l’area clienti su un dominio diverso, in questo modo se il nostro sito WordPress venisse bucato i dati dei nostri sono al sicuro altrove). Se usi un account hosting per sito il danno sarebbe limitato ad un solo sito web.
  • Backups: mantieni dei backup aggiornati per il tuo sito web. Con SupportHost sei al sicuro dal momento che manteniamo 30 backup giornalieri per ogni account. È importante avere un piano per recuperare il tuo sito web nel caso in questo venga compromesso.
  • Mantieni tutto all’ultima versione: devi fare il possibile per mantenere tutto aggiornato all’ultima versione. Stiamo parlando del core di WordPress, i temi ed i plugin che usi, ma anche assicurarti che il tuo provider mantenga aggiornati all’ultima versione il sistema operativo del server e tutti i pannelli di controllo.
  • Fonti di fiducia: non scaricare temi o plugin nulled o da fonti di cui non puoi fidarti al 100%. Usare un plugin nulled è la ricetta per un disastro. Ci sono persone che di lavoro distribuiscono plugin e temi nulled con malware allo scopo di penetrare nel tuo sito e usarlo a loro piacimento.
  • Aggiornamenti di Sicurezza e Notizie: le falle di sicurezza sono un problema in qualsiasi software e WordPress non ne è immune. Resta aggiornato iscrivendoti al database delle vulnerabilità di WordPress mantenuto da WPVulnDB.com oppure seguendo la categoria sicurezza del blog di WordPress.

Lavora in un Ambiente Sicuro

Devi inoltre essere certo che l’ambiente in cui lavori è sicuro. Mantieni il software del tuo computer, browser e router all’ultima versione, e controllalo periodicamente con software apposito alla ricerca di virus, malware o spyware. Considera l’utilizzo di una VPN sicura per criptare tutte le tue comunicazioni online quando usi delle connessioni pubbliche.

Tipi di Vulnerabilità

Dal momento che WordPress è una piattaforma open source, chiunque può contribuire al suo sviluppo. Questo rende semplice trovare sviluppatori per la creazioni di temi e plugin e offre sempre maggiori funzionalità agli utenti.

Ma è proprio questa apertura che porta a problemi di sicurezza che non possono essere ignorati. Ogni plugin ed ogni tema che viene creato può contenere delle vulnerabilità. Esistono diversi tipi di vulnerabilità. Vediamole una ad una.

  • Attacchi Brute Force
  • SQL Injection
  • Malware
  • Cross-Site Scripting
  • DDos Attack
  • Versioni obsolete di WordPress e PHP

Attacchi Brute Force

Un attacco Brute Force non è né più né meno che una serie di tentativi per scoprire una password. In pratica un bot prova diverse combinazioni fino a trovare l’utente e la password corretti. Solitamente vengono usati degli algoritmi e dei dizionari per cercare di indovinare le password più comuni.

Questo tipo di attacco è difficile da eseguire ma rimane comune. WordPress non blocca ripetuti tentativi di login quindi un bot può provare migliaia di combinazioni al secondo. Su SupportHost abbiamo un sistema di sicurezza per proteggere i nostri utenti da questo tipo di attacco, di cui parleremo nel prossimo capitolo.

Prevenire e bloccare questo tipo di attacchi

Per evitare questo tipo di attacchi (oltre alle nostre protezioni) è consigliabile usare password lunghe che contengano maiuscole, minuscole, numeri e simboli, usando ad esempio i caratteri speciali della tastiera. Un’altra buona norma è quella di usare un nome utente diverso da admin per il login, questo è il nome utente più comune e quello che viene principalmente usato per questo tipo di attacchi.

Se vogliamo mettere in sicurezza WordPress un’altra buona pratica è di usare un’autenticazione a due fattori, di cui parleremo con maggiori dettagli in seguito.

SQL Injection

Questo è uno dei metodi più vecchi per hackerare un sito e consiste nell’iniettare una query SQL usando un form, allo scopo di corrompere il database.

Dopo aver effettuato l’intrusione l’attaccante può manipolare il database MySQL ed ottenere l’accesso come admin o cambiare le credenziali di accesso. Questo tipo di attacco è di solito eseguito da hacker amatoriali che vogliono testare le loro capacità.

Prevenire e bloccare questo tipo di attacchi

Puoi usare un plugin per controllare se il tuo sito è stato vittima di questo tipo di attacco. Due ottimi plugin per fare un controllo di questo tipo sono WPScan e Sucuri SiteCheck.

Su SupportHost usiamo Imunify 360 che permette una scansione a pari livello, senza influire sulle prestazioni del sito. I plugin di sicurezza, infatti, sono tra i plugin che rallentano WordPress. Questi plugin andrebbero evitati perché hanno un impatto piuttosto importante sulle prestazioni, e fanno un lavoro che il server, se ben gestito e con i software corretti, esegue in modo più efficiente.

Malware

In questo caso viene iniettato del codice malevolo nella tua installazione WordPress usando un tema infettato, o una versione vecchia di un plugin. Questo malware può essere usato per estrarre dei dati dal tuo sito oppure per inserire del contenuto facendolo passare inosservato.

I malware possono causare danni di vario tipo, da aggiungere dei link al contenuto del tuo sito fino ad infettare il core della tua installazione WordPress

Prevenire e bloccare questo tipo di attacchi

Usualmente è lo stesso utente ad infettare il suo sito usando temi e plugin nulled (crackati). Una regola d’oro per mettere in sicurezza WordPress e proteggere il tuo sito è quella di assicurarsi di scaricare i temi e plugin per il tuo sito web soltanto da fonti sicure. Esistono persone che comprano i temi e plugin premium e li distribuiscono gratis dopo aver introdotto un malware al loro interno.

Plugins come Sucuri o WordFence possono eseguire una scansione e scoprire i malware.

Nel prossimo capitolo vedremo come proteggiamo i clienti di SupportHost da questo tipo di minaccia.

Cross-Site Scripting

Uno degli attacchi più comuni è il Cross-Site Scripting conosciuto anche come attacco XSS. In questo caso l’attaccante carica un codice JavaScript che quando viene eseguito dal browser del cliente raccoglie i dati e in alcuni casi esegue un redirect ad un sito malevolo.

Prevenire e bloccare questo tipo di attacchi

Per evitare questo tipo di attacchi devi validare i dati che vengono inseriti nel tuo sito WordPress tramite la sanitizzazione. Questo viene eseguito direttamente dai temi e plugin, la sanitizzazione viene fatta tramite codice. Puoi usare un plugin come Prevent XSS Vulnerability per proteggerti.

DDos Attack

Un attacco Distributed Denial of Service (DDoS) è una versione più evoluta di un attacco Denial of Service (DoS). Questo tipo di attacco prevede che vengano eseguite una quantità di richieste tali da causare problemi al server web.

Mentre gli attacchi DoS usano una solo sorgente (e sono quindi più facili da bloccare) gli attacchi DDoS vengono lanciati da diverse postazioni (centinaia o migliaia di IP che visitano in modo simultaneo) e risultano quindi più difficili da bloccare.

Prevenire e bloccare questo tipo di attacchi

Su SupportHost abbiamo una protezione DDoS avanzata di cui parleremo nei dettagli nel prossimo capitolo. Per prevenire questo tipo di attacchi c’è ben poco che puoi fare tu stesso per mettere in sicurezza WordPress, ma devi fidarti delle misure messe in atto da tuo hosting provider.

Proprio recentemente un famoso provider italiano è finito sotto attacco DDoS lasciando tutti i suoi utenti offline per giorni, una situazione che si sarebbe potuto evitare se avessero avuto in uso delle protezioni avanzate per questo tipo di attacco.

Versioni Obsolete di WordPress e PHP

Le vecchie versioni di WordPress sono facili da hackerare in quanto contengono delle vulnerabilità conosciute. WordPress rilascia continuamente delle versioni con aggiornamenti di sicurezza proprio a tale scopo.

Sicurezza

Lo stesso può succedere se usi una vecchia versione di PHP, che può avere delle falle di sicurezza, oppure causare dei problemi di incompatibilità. Dal momento che WordPress usa PHP ha bisogno di una versione di PHP aggiornata per funzionare senza problemi.

Stando alle statistiche ufficiali di WordPress il 42,6% degli utenti usa un vecchia versione di WordPress e solo il 2,3% dei siti in WordPress usa l’ultima versione di PHP, che in questo momento è la 7.2.

Prevenire problemi di questo tipo

Questo è molto semplice. Per evitare vulnerabilità di questo genere devi stare alla larga dalle versioni obsolete, ciò significa che per mettere in sicurezza WordPress e mantenerlo tale, non devi far altro che mantenere WordPress, i plugin ed i temi che usi all’ultima versione.

Per quanto riguarda PHP e tutto il software sul server non devi far niente, dal momento che ci pensa il tuo provider. Con SupportHost puoi scegliere quale versione di PHP usare, e manteniamo tutto il software sul server sempre all’ultima versione per garantire il massimo della sicurezza.

Non dovrai far altro che seguire il nostro tutorial per cambiare la versione di PHP dopo esserti accertato che i plugin e temi che usi sono compatibili con l’ultima versione disponibile.

Hosting e Sicurezza

Il primo livello di sicurezza deve essere fornito dal provider. Non importa cosa fai, se il tuo provider non riesce a mantenere un ambiente sicuro per il tuo sito web e non è in grado di proteggerti dagli attacchi più comuni non riuscirai mai ad avere un sito sicuro e ogni tentativo di mettere in sicurezza WordPress sarà vano.

Nel nostro hosting WordPress abbiamo diversi sistemi atti a proteggere i siti dei nostri clienti, vediamoli nel dettaglio.

Protezione Anti-DDoS

Cos’è un attacco DDoS?

Un attacco DDoS (distributed denial-of-service) è un tipo di attacco che consiste nel sovraccaricare un server, servizio o network con un’ondata di traffico proveniente da diverse sorgenti. Gli attacchi DDoS traggono la loro efficienza dall’utilizzo di sorgenti di traffico multiple, sorgenti che sono state precedentemente compromesse a questo scopo. Un attacco DDoS è come un’autostrada trafficata, tanto trafficata da non permettere al normale traffico di arrivare a destinazione.

Come funziona un attacco DDoS

Il primo requisito di un attacco DDoS è che l’attaccante abbia il controllo di una rete di macchine online per poter dirigere l’attacco. Queste vengono infettate con un malware in modo da poter essere usate come un bot. L’attaccante ha quindi il controllo su queste macchine (bots), questa rete viene chiamata botnet.

Una volta creata la botnet l’attaccante fornisce le istruzioni per l’attacco da remoto. Una volta che l’IP della vittima viene deciso ogni bot invia delle richieste causando un sovraccarico che risulta in una impossibilità di offrire il servizio al normale traffico. Dal momento che ogni bot appare come normale traffico è difficile separare gli attaccanti dal normale traffico.

La soluzione di SupportHost agli attacchi DDoS

SupportHost usa degli strumenti automatici per proteggere le applicazioni, i siti ed i server dei clienti da questo tipo di minaccia. Il nostro sistema automatico di prevenzione riconosce quasi tutti questi attacchi in anticipo, permettendoci di bloccarli sul nascere e sventare questo tipo di attacchi prima che possano creare disservizi ai nostri clienti. Proteggiamo i nostri clienti con harware Arbor e Juniper.

Trasmissione Dei Dati In Condizioni Normali
Trasmissione dei dati in condizioni normali
Trasmissione Dei Dati Durante Un Attacco Ddos
Trasmissione dei dati durante un attacco DDoS

Riconoscimento automatico dei pattern di attacco

Oltre a riconoscere l’attacco basandoci sulla quantità di traffico ricevuto, SupportHost è in grado di definire il tipo di attacco e reagire in modo adeguato ad ogni tipo di attacco per prevenirlo.

Per esempio un UDP flood con 500k pps non crea alcun problema al server, mentre un pacchetto 500k SYN potrebbe creare problemi. La nostra protezione DDoS può individuare la differenza tra i due e reagire di conseguenza.

Filtraggio del traffico in base ai pattern di attacco conosciuti

Questo metodo ci permette di filtrare in modo automatico i metodi di attacco già conosciuti e far passare questo traffico tramite i nostri filtri. Questo metodo è particolarmente efficace per i seguenti tipi di attacco: DNS reflection, NTP reflection, e UDP floods sulla porta 80.

Challenge-Response Authentication e filtraggio dinamico del traffico

In questo ultimo livello filtriamo gli attacchi SYN floods, DNS floods e pacchetti invalidi. Siamo inoltre in grado di adattarci in modo flessibile ad altri tipi di attacchi per poterli mitigare. Queste tecnologie ci permettono un alto livello di automazione, automazione che viene costantemente aggiornata ed ottimizzata. Miglioriamo costantemente il sistema in modo da ottimizzare i filtri e le risposte.

Cosa comporta per i clienti

La nostra protezione DDoS non incide sui prezzi che offriamo ai nostri clienti. Il nostro sistema riconosce gli attacchi DDoS e la sua abilità di riconoscerli migliora nel tempo. Una volta che l’attacco viene riconosciuto, la nostra protezione DDoS dinamica entra in azione filtrando l’attacco. Il tuo traffico non sarà influenzato dalle nostre protezioni dinamiche atte a mitigare l’attacco.

Antivirus

ClamAV è un software antivirus open source che serve ad identificare trojans, virus, malware ed altre minacce appoggiandosi a dati aggiornati automaticamente tramite internet.

Usiamo ClamAV per eseguire una scansione di tutte le email in entrata ed in uscita sui nostri server, per assicurarci che non puoi né inviare né ricevere virus o altro tramite il nostro servizio.

Inoltre puoi eseguire in completa autonomia una scansione antivirus del tuo account seguendo il nostro tutorial.

Anti-Malware

Eseguiamo automaticamente una scansione Anti-malware su tutti i files nel momento in cui vengono caricati sul server.

Il software che usiamo a tale scopo è imunify 360. La scansione attiva dei file può aiutare a prevenire lo sfruttamento di un account da parte di malware, eliminando o spostando i file sospetti in quarantena prima che diventino attivi. Può anche impedire il caricamento di script PHP e di shell perl, comunemente usati per lanciare più attacchi dannosi e per inviare spam.

Imunify 360 consente inoltre di eseguire scansioni on-demand di file, directory e account utente per sospetti exploit, virus e risorse sospette (file, directory, symlinks, sockets). È possibile eseguire scansioni di dati utente esistenti per verificare se gli exploit sono stati caricati in passato o tramite metodi non coperti dalla scansione attiva.

Antispam

Su tutti i server SupportHost è configurato SpamAssassin. Questo è un software antispam che filtra le mail di spam in ricezione usando regole basate sul contesto ma anche regole basate su DNS, checksum e filtraggio statistico.

SpamAssassin è considerato uno dei filtri antispam più efficaci, specialmente nel nostro caso dal momento che lo usiamo congiuntamente con un database antispam.

Per la maggior parte degli utenti una semplice comparazione testuale è sufficiente per filtrare la maggior parte della posta ricevuta.

Firewall

Su tutti i server di SupportHost abbiamo installato un Firewall. ConfigServer Firewall, noto anche come CSF, è uno script di configurazione del firewall creato per fornire una maggiore sicurezza per il server. CSF configura il firewall del server per bloccare l’accesso pubblico ai servizi e consentire solo alcune connessioni, come l’accesso a FTP, il controllo delle e-mail o il caricamento di siti web.

Intrusion Detection System

ConfigServer Firewall viene fornito con un servizio chiamato Login Failure Daemon, o LFD. LFD controlla l’attività dell’utente per errori di login eccessivi che sono comunemente osservati durante gli attacchi di brute force. Se un gran numero di errori di login provengono dallo stesso indirizzo IP, quell’IP sarà immediatamente bloccato temporaneamente da tutti i servizi sul vostro server. Questi blocchi IP scadranno automaticamente, ma possono essere rimossi manualmente dai nostri operatori. Oltre a rimuovere gli IP, CSF consente anche di inserire manualmente nella whitelist o blacklist IP nel firewall, in questo modo possiamo evitare che alcuni particolari IP dei nostri clienti vengano boccati dal firewall.

Abbiamo inoltre impostato delle regole proprietarie per mitigare gli attacchi brute force più comuni ai maggiori CMS. Ad esempio se cerchi di eseguire il login a WordPress ripetute volte con dati errati il tuo indirizzo IP sarà bloccato per mezzora. Questo ci aiuta a proteggere al massimo i nostri utenti dagli attacchi brute force mantenendo in sicurezza WordPress o gli altri CMS che utilizzano.

Isolamento Totale degli Account

Uno dei modi che usiamo per mantenere la massima sicurezza degli account dei nostri clienti è il completo isolamento di ogni singolo account. Puoi pensare che l’hosting condiviso nella maggior parte dei servizi sia sicuro e che l’accesso al tuo account sia solo tuo. Purtroppo nella maggioranza dei casi non è così.

I provider di hosting condiviso hanno spesso dei problemi di sicurezza che possono causare problemi all’intero server, e questo succede perché semplicemente uno degli account su quel server ha una applicazione non sicura. La maggioranza dei software open-source, come Joomla, WordPress e molte altre applicazioni sono i target preferiti dagli hacker. Su un server condiviso standard quando uno di questi account vulnerabili viene attaccato, l’hacker può attaccare con semplicità tutti gli altri account sul medesimo server, o addirittura portare offline l’intero server.

Riceviamo infinite richieste di potenziali clienti che ci richiedono se il nostro servizio è sicuro perché il loro account è stato hackerato più volte con un altro provider.

Supporthost Hosting Sicuro Spiegato

Sul nostro hosting sicuro usiamo un chroot isolation technology personalizzato. Con la nostra soluzione anche se un account non è sicuro, gli altri account sul medesimo server non possono essere attaccati tramite il web server o il cron come in un normale ambiente condiviso.

Questo ci fa diventare uno degli hosting più sicuri, puoi dormire sonni tranquilli sapendo che il tuo sito è su una delle piattaforme più sicure sul mercato.

Proteggere WordPress

Mantieni WordPress Aggiornato

Quando si parla di mettere in sicurezza WordPress questo è forse il consiglio che va per la maggiore, e c’è un motivo se è così. Automaticc (l’azienda che sta dietro WordPress) e gli sviluppatori di plugin e temi rilasciano periodicamente nuove versioni allo scopo di chiudere quelle falle di sicurezza che vengono periodicamente scoperte. WordPress può aggiornarsi automaticamente per quanto riguarda gli aggiornamenti di sicurezza, mentre richiede l’aggiornamento manuale per gli aggiornamenti maggiori che potrebbero causare incompatibilità coi i plugin.

Lo stesso vale per temi e plugin. Un tema o plugin non aggiornato può costituire un punto debole che consente ad un hacker un facile “ingresso”.

Installa una Soluzione di Backup

I backup sono la tua prima difesa contro un attacco hacker. Ricorda che niente è sicuro al 100% e se i siti governativi e i siti delle banche vengono bucati anche il tuo può essere bucato. I backup ti permettono di ripristinare il tuo sito ad una versione precedente senza perdere niente nel caso succeda qualcosa.

Backup

Non tutti i servizi hosting offrono una soluzione di backup professionale ed utilizzabile. Con SupportHost hai a disposizione 30 backup giornalieri in qualsiasi momento. Vale a dire che se il tuo sito è stato bucato puoi scegliere fra 30 diversi backup per il ripristino.

Se il tuo hosting non fornisce un servizio backup adeguato esistono svariati plugin di backup che ti permettono di creare una copia del sito e salvarla su un server esterno. Noi consigliamo UpdraftPlus anche se sarebbe più intelligente cambiare hosting passando ad provider che offra una soluzione professionale per i backups.

Cambia il Prefisso del Database

La stragrande maggioranza delle installazioni WordPress usa il prefisso “wp_” prima del nome di ogni tabella. Se anche il tuo sito usa questo prefisso stai rendendo facile la vita agli hacker che possono indovinare il prefisso delle tue tabelle. Vediamo subito come cambiarlo ci aiuta a mettere in sicurezza WordPress.

Se effettui una nuova installazione puoi scegliere un prefisso diverso durante il processo di installazione, nella schermata in cui ti vengono chiesti i dati di accesso al database.

Se invece hai già installato WordPress e vuoi cambiare il prefisso delle tue tabelle ci sarà un po’ di lavoro manuale da fare. In alternativa puoi usare un plugin come “Change Table Prefix”. Ricorda sempre di eseguire un backup del tuo sito web prima di procedere con operazioni di questo tipo, in modo da poter tornare indietro nel caso ci fosse qualche problema con le modifiche.

Cambia le Chiavi di Sicurezza

WordPress utilizza delle chiavi di sicurezza, che sono memorizzate nel file wp-config.php, per crittare i dati della sessione che vengono memorizzati nei cookie nel browser. Queste chiavi sono chiamate Keys e Salt.

Puoi cambiare queste chiavi in qualsiasi momento. È consigliabile cambiarle prima dell’installazione e poi cambiarle periodicamente. Cambiare queste chiavi regolarmente ti permette di invalidare le sessioni attive e costringere tutti i tuoi utenti ad eseguire nuovamente l’accesso. Puoi generare manualmente le chiavi, ma consigliamo di usare il servizio ufficiale di WordPress per sostituire le chiavi con quelle già presenti nel file wp-config.php.

Blindare la parte amministratore

Esiste una strategia per la sicurezza che si chiama security by oscurity. Questa strategia è molto efficace per un sito medio. Se gli hacker non riescono a trovare la tua pagina di login è più difficile che possano tentare un attacco.

Login

Per ottenere questa blindatura procederemo modificando l’url di login e limitando il numero di tentativi di login. Come spiegavo prima su SupportHost limitiamo con delle regole proprietarie il numero di login per i principali script, e quindi queste regole valgono anche per aiutarti a mettere in sicurezza WordPress. Se però decidi di cambiare l’url di login il nostro sistema smetterà di funzionare e dovrai usare un sistema differente.

Come cambiare l’url di login

Di default la tua area amministratore si trova all’indirizzo dominio.it/wp-admin mentre la pagina di login si trova all’indirizzo dominio.it/wp-login.php.

Il problema con questo sistema è che anche gli hacker ed i bot lo sanno. Cambiando l’url rendi la vita più difficile a chi vuole attaccarti, è difficile lanciare un attacco brute force se non si conosce l’url di login.

Per eseguire questa operazione ti consigliamo il plugin WPS Hide login. Puoi modificare l’url di login in modo semplice dalle impostazioni, ma ricordati di scegliere un nome che non è già nella lista che i bot o gli hacker potrebbero trovare.

In questo caso sarà necessario usare un plugin per impostare un limite di tentativi di accesso. Vediamo come limitare gli accessi fissando un limite massimo di tentativi e mettere così in sicurezza WordPress.

Come limitare i tentativi di login

A questo punto la nostra protezione non funzionerà più proteggerti dagli attacchi hacker. Le nostre regole per limitare i tentativi di accesso usano le url, quindi se cambi indirizzo non saremo in grado di identificare e bloccare un attacco.

In questo caso sarà necessario usare un plugin per impostare un limite di tentativi di accesso. Il plugin gratuito Cerber Limit Login Attempts è ottimo per impostare la durata del blocco, il numero massimo di tentativi di login e creare delle whitelist e blacklist di IP.

Usare una autenticazione HTTP

Un altro modo per proteggere la tua area riservata e mettere in sicurezza WordPress consiste nell’usare una protezione HTTP. Con questo tipo di protezione ti viene richiesto un username e password ancora prima di accedere alla pagina di login di WordPress. Questo tipo di protezione non può essere usata in siti che permettono l’accesso agli utenti all’area riservata (altrimenti dovremo dare a tutti un doppio login) ma è un ottimo sistema per ridurre il numero di “hits” da parte di bot.

Su SupportHost puoi aggiungere questo tipo di protezione direttamente dal cPanel. Per proteggere una cartella con password puoi seguire il nostro tutorial su come implementare la protezione htaccess password con cPanel.

Usare un Web Application Firewall

Se usi CloudFlare o Sucuri puoi bloccare un url. In pratica puoi impostare un regola in modo che soltanto il tuo indirizzo IP possa accedere all’area amministratore. Anche questa soluzione non può essere usata in siti che permettono l’accesso agli utenti all’area riservata.

CloudFlare offre questo servizio nei suoi account Pro o livelli superiori grazie al quale puoi impostare una regola per ogni url.

Sucuri offre una funzione chiamata Blacklist URL path feature, e puoi quindi impostare il tuo IP in whitelist.

Scegli Plugin e Temi Affidabili

I plugin ti aiutano ad estendere le funzionalità di WordPress mentre i temi ti aiutano a modificare a tuo piacimento l’interfaccia grafica del tuo sito web. Esistono centinaia di migliaia di plugin e temi, puoi trovarli nella repository ufficiale e in centinaia di altri posti.

Spesso si installano plugin e temi con una certa leggerezza, ma questi possono portare a problemi di sicurezza. Come ho spiegato nella sezione Sicurezza Sotto Controllo scaricare un plugin nulled può comportare problemi, ci sono persone che di lavoro distribuiscono plugin e temi nulled con malware allo scopo di penetrare nel tuo sito e usarlo a loro piacimento.

Ma oltre a questi casi intenzionali, puoi scaricare un plugin che ha una falla di sicurezza, proprio per questo motivo vengono rilasciati continui aggiornamenti per plugin e temi, per chiudere queste falle di sicurezza quando vengono trovate.

Wordpress

Mettere in sicurezza WordPress significa prestare attenzione anche a qualsiasi falla, per questo è di fondamentale importanza scaricare soltanto plugin e temi dalla repository ufficiale di WordPress oppure da siti web affidabili. Prima di scegliere un tema o plugin dovresti sempre seguire questi passaggi:

  • Controlla le recensioni, il numero di downloads ed i commenti
  • Controlla la data dell’ultimo aggiornamento per capire se il software è ancora attivo o è stato abbandonato
  • Fai una ricerca in base all’autore e vedi quali altri temi o plugin sono attivi nella repository
  • Controlla se il tema o plugin è compatibile con la versione di WordPress che usi.

Ovviamente esegui sempre un backup dei files del tuo sito web e del tuo database prima di procedere con l’installazione. In questo modo se ci fossero problemi potrai sempre tornare indietro in modo semplice.

Proteggi il Login

Come abbiamo visto un tipo di attacco molto comune è l’attacco Brute Force. Vediamo cosa possiamo fare per mettere in sicurezza WordPress e proteggere il nostro sito da questo tipo di attacchi.

Scegliere il Nome Utente

In primis, se stai usando “admin” come username per il tuo account amministratore cambialo subito con qualsiasi altro nome. La maggior parte degli attacchi brute force usano proprio questo nome utente per cercare di accedere con password casuali.

Inoltre dovresti assicurarti che il tuo nome utente sia diverso dal nome visualizzato. L’idea qui è di non far sapere a chi vuole attaccare il tuo sito web qual è il tuo nome utente amministratore. Se pubblichi articoli col tuo nome, e lo stesso nome è l’utente amministratore hai appena fornito un’informazione utile a chi vuole minare la sicurezza del tuo sito web.

In questo caso le cose che puoi fare sono due:

  • Usare un nome utente diverso dal nome con cui pubblichi gli articoli, ma tieni presente che sarà sempre possibile vedere il tuo username nel link della author page
  • Creare un account editore che userai soltanto per postare sul tuo sito web. In questo modo anche se dovessero entrare usando il tuo account editore non potranno far molto dal momento che non avranno i permessi necessari.

Usa una Password non Comune

Da una ricerca le password più usate sono ‘123456’, ‘qwerty’, ‘letmein’. Nel 2015 ‘starwars’ era nella lista delle 25 password più usate. Usare una password simile equivale a scrivere il numero pin sulla tua carta di credito.

Dovresti usare una password lunga, complessa ed unica. Quindi che contenga 16-20 caratteri, maiuscole, minuscole, numeri e simboli e non possa essere scoperta a tentativi controllando su un vocabolario.

Esistono dei tools online che creano per te una password sicura. Dovrai poi ovviamente salvarla, ad esempio nel browser oppure usando tools come LastPass o 1Password.

Tieni presente che le nostre regole proprietarie mitigano gli attacchi brute force, ma questo non vol dire che tu debba usare una password debole e facile da scoprire per un attaccante.

Usare l’Autenticazione a due Fattori

Anche se non stai usando ‘admin’ come nome utente e la tua password è lunga e complessa, potresti comunque essere vittima di un attacco brute force. Noi limitiamo i tentativi di login ai principali CMS a 5 ogni mezzora, ma se l’attaccante dispone di diversi IP potrebbe comunque scoprire i tuoi dati di accesso.

Per limitare al massimo questo tipo di problemi in certi casi (ad esempio se gestisci dati sensibili dei tuoi clienti) può aver senso abilitare una autenticazione a due fattori.

Autenticazione Da Telefono

Sappiamo quanto è noiosa l’autenticazione a due fattori, ma in alcuni casi è necessaria. Certo se hai un blog semplice e nessun dato dei tuoi clienti viene memorizzato è una sicurezza aggiuntiva ma non necessaria in questo caso.

Esiste un plugin per mettere in sicurezza WordPress con l’autenticazione a due fattori: Google Authenticator.

Disconnetti in automatico gli utenti inattivi

Gli utenti loggati possono allontanarsi dallo schermo e questo potrebbe comportare un rischio. Qualcuno può entrare usando un metodo chiamato “session hijack” e cambiare la password dell’utente o eseguire modifiche sul suo account.

Proprio per questo motivo la maggior parte dei siti sui quali si gestiscono dei soldi (PayPal, siti bancari) disconnettono automaticamente gli utenti inattivi dopo un certo lasso di tempo. Puoi implementare una funzionalità simile per mettere in sicurezza WordPress.

Puoi usare il plugin Inactive Logout e dopo averlo attivato impostare il messaggio per gli utenti ed il tempo massimo di inattività per eseguire il logout degli utenti inattivi.

Disabilita i Suggerimenti al Login

Quando esegui il login con dati errati WordPress restituisce un errore nella pagina di login, indicando se il nome utente esiste o meno o se il problema è dovuto alla password errata.

Sicurezza WordPress Suggerimenti Di Login

Il problema in questo caso è che stiamo fornendo delle informazioni importanti a chi vuole attaccare il nostro sito web. Gli stiamo dicendo infatti che l’username con cui stanno provando ad entrare esiste o meno. Di conseguenza chi ci attacca continuerà ad usare quel nome utente oppure ne proverà un altro.

È opportuno eliminare questi avvisi per il principio di cui abbiamo parlato prima: “security by obscurity”. Cercheremo quindi di dare il minor numero di informazioni possibili a chi ci attacca nascondendo questi avvisi.

Per nascondere questi avvisi dobbiamo aggiungere una funzione all’interno del file functions.php:

function hide_wordpress_login_errors(){
return 'Gli errori di login sono stati nascosti per ragioni di sicurezza';
}
add_filter( 'login_errors', hide_wordpress_login_errors );

Ovviamente puoi personalizzare il testo dell’errore come preferisci.

Proteggi Files e Funzioni

WordPress ha alcune funzioni che non tutti conoscono, e quindi non tutti usano come ad esempio il File Editing (puoi modificare il tema ed i plugin direttamente dall’interfaccia amministratore) o XML-RPC che serve a gestire WordPress da remoto e può essere potenzialmente dannoso.

Inoltre alcune funzioni dell’hosting vanno disabilitate. Vedremo come evitare di eseguire i files php caricati all’interno della cartella uploads e come nascondere alcuni files per proteggerli al massimo e riuscire così a mettere in sicurezza WordPress.

Nascondi wp-config.php e .htaccess

Questa operazione è molto semplice da eseguire, ma se fai qualche errore il tuo sito può diventare inaccessibile. Quindi come sempre, prima di eseguire questa operazione esegui un backup.

Devi modificare il tuo file .htaccess aggiungendo questo codice per nascondere il file wp-config.php:

<Files wp-config.php>
order allow,deny deny from all
</Files>

In questo modo stai bloccando l’accesso al file. Puoi usare un codice simile per nascondere lo stesso file .htaccess:

<Files .htaccess>
order allow,deny deny from all
</Files>

Sarebbe anche opportuno bloccare i files di installazione per una maggiore sicurezza:

#Blocca file di installazione
<files install.php>
Order allow,deny
Deny from all
</files>
<files setup-config.php>
Order allow,deny
Deny from all
</files>

Nascondi la Versione di WordPress

Nascondere la versione di WordPress segue il principio “security by obscurity” di cui abbiamo parlato prima. Meno si sa del tuo sito e delle tue configurazioni, meglio è. Se dal codice si vede che stai usando una vecchia versione di WordPress, è come dare il benvenuto agli hacker. Ovviamente è consigliabile mantenere WordPress aggiornato all’ultima versione, ma nascondere la versione resta una buona pratica per mettere in sicurezza WordPress.

Per nascondere la versione di WordPress ti basta aggiungere la seguente funzione al file functions.php del tema di WordPress che stai utilizzando:

function wp_version_remove_version() {
return '';
}
add_filter('the_generator', 'wp_version_remove_version');

Un’altro posto dove puoi vedere la versione è il file readme.html che viene mostrato nella root della tua installazione WordPress. Questo files è incluso in tutte le versioni di WordPress e lo puoi eliminare senza problemi tramite FTP o dal file manager del cPanel.

Se usi WordPress 5.0 o una versione superiore non è necessario cancellare questo file dal momento che il numero della versione non è più incluso nel file readme.

Disabilita il File Editing

WordPress ha di default un code editor che ti permette di modificare i files di plugin e temi direttamente dall’interfaccia admin. Questo può costituire un problema dal momento che chiunque abbia accesso come amministratore potrà aggiungere del codice php.

Puoi disabilitare facilmente questa funzione aggiungendo questo codice al file wp-config.php sul tuo account:

// Disallow file edit
define( 'DISALLOW_FILE_EDIT', true );

Se vuoi restringere ancora di più i permessi, puoi evitare che gli utenti possano installare temi e plugin aggiungendo la seguente riga nel file di configurazione wp-config.php:

define('DISALLOW_FILE_MODS',true);

Disabilita l’esecuzione di files PHP in alcune cartelle

Alcune cartelle non hanno bisogno di eseguire files php, come ad esempio /wp-content/uploads/. Puoi creare un file .htaccess e caricarlo all’interno della cartella per la quale non vuoi che i files php vengano eseguiti col seguente codice:

<Files *.php>
deny from all
</Files>

Ti consigliamo di inserire lo stesso file .htaccess anche all’interno di /wp-content/plugins e /wp-content/themes.

Disabilita il Directory index

Alcuni servizi di hosting permettono il directory browsing, questo permette ad un hacker di vedere il contenuto della cartella. Per disabilitare questa opzione non devi far altro che inserire una riga di codice alla fine del file .htaccess situato nella cartella dove è installato WordPress:

Options -Indexes

Disabilita XML-RPC

Alcuni hosting disabilitano di default il file XML-RPC per motivi di sicurezza. Su SupportHost per ragioni di sicurezza XML-RPC è bloccato di default, ed accessibile soltanto da Jetpack. Se hai bisogno di usare altri servizi puoi contattare il nostro supporto per sbloccare l’accesso in base alle tue esigenze. Se questo non è il caso nel servizio di hosting che utilizzi non devi far altro che inserire il seguente codice nel file .htaccess del tuo sito web:

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from 123.123.123.123
allow from 124.124.124.124
</Files>

Disabilita le REST API

Dalla versione 4.4 le REST API sono incluse nel core di WordPress consentendo ad ogni sviluppatore di interagire col sito. Questo ha consentito a tanti sviluppatori di interagire con WordPress, ma ha anche aperto nuove possibilità di attacco al tuo sito web, in particolare gli attacchi DDoS.

Se nessuno dei tuoi plugin usa le REST API puoi disattivarle con facilità aggiungendo due righe di codice al file functions.php del tuo tema:

add_filter('json_enabled', '__return_false');
add_filter('json_jsonp_enabled', '__return_false');

Ulteriori Misure per mettere in sicurezza WordPress

HTTPS, Certificato SSL

La soluzione più trascurata per proteggere WordPress consiste nell’installare un certificato SSL e mostrare il tuo sito con il protocollo HTTPS. Un’idea sbagliata molto comune è che hai bisogno di un certificato SSL soltanto se processi le carte di credito sul tuo sito web. La connessione cifrata HTTPS permette di connettere il tuo browser o la tua applicazione in modo sicuro a un sito web.

Se il tuo sito WordPress usa solo la connessione http controlla la nostra guida WordPress https per fare il passaggio in pochi minuti. Nell’articolo potrai anche trovare un video da seguire passo passo.

Vediamo di spiegare perché la connessione HTTPS è importante anche se il tuo sito web non è un eCommerce. Molti host, tra cui SupportHost offrono il certificato SSL di Let’s Encrypt gratuitamente.

È necessario forzare la connessione HTTPS modificando il file .htaccess aggiungendo queste righe di codice all’interno del file:

RewriteCond %{HTTPS} off
RewriteRule (.*)$ https://www.dominio.it/$1 [L,R=301]

Esistono dei plugin per forzare HTTPS, ma riteniamo inutile utilizzare un plugin invece di aggiungere due righe di codice all’interno di un file.

Dovrai inoltre forzare ogni nuova sessione in modo da fargli usare la connessione sicura HTTPS inserendo le seguenti righe dentro il file wp-config.php:

define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

Sicurezza

Ovviamente il primo fattore per cui usare un certificato SSL è la sicurezza. Quanto sono importanti le informazioni di login del tuo sito web? HTTPS è di assoluta importanza per usare una connessione cifrata e non passare alcun dato in chiaro. In questo modo puoi prevenire che un hacker possa ottenere accesso al tuo sito web.

SEO

Già da tempo Google ha inserito la connessione HTTPS come uno dei fattori di ranking. Anche se si tratta di un fattore che ha poco peso, non ha senso ignorarlo completamente.

Fiducia e Credibilità

Stando ad un sondaggio di GlobalSign quasi il 30% dei visitatori si aspetta di vedere la barra del browser verde. Il 77% dei visitatori ha paura che i dati possano essere intercettati durante le transazioni. Vedere il lucchetto verde nella barra dell’indirizzo dà subito una sensazione di fiducia agli utenti.

Avvisi di Chrome

Dalla versione 68 Google Chrome ha iniziato a segnalare come non sicuri tutti i siti che non usano una connessione cifrata HTTPS, indipendentemente dal fatto che stiano memorizzando i dati degli utenti o meno.

Questo diventa particolarmente importante se la maggior parte del traffico ti arriva da utenti che usano Google Chrome.

Performance

HTTPS supporta il protocollo HTTP/2 che comporta un miglioramento delle prestazioni. L’aumento delle prestazioni è dovuto a diversi fattori: multiplexing, parallelismo, compressione HPACK con codifica Huffman e l’estensione ALPN.

Aggiungi gli Headers HTTP per la Sicurezza

Una sicurezza importante per il tuo sito WordPress sono gli header HTTP. Questi sono generalmente configurati a livello di server e dicono al browser come comportarsi col contenuto del tuo sito web. Esistono diversi tipi di header, i più importanti sono:

  • Content-Security Policy
  • X-XSS-Protection
  • Strict-Transport-Security
  • X-Frame-Options
  • Public-Key-Pins
  • X-Content-Type

Puoi controllare quali headers sono in uso in questo momento sul tuo sito web con gli strumenti per developer di Google Chrome oppure usare il tool securityheaders.com. Se non sai come implementarli chiedi al tuo provider hosting, oppure se sei nostro cliente apri un ticket di supporto.

Scan Results For Https Securityheaders Com

Content-Security Policy

L’header Content-Security Policy serve a ridurre il rischio di XSS specificando quali contenuti del sito web o contenuti di terze parti posso essere caricati in maniera dinamica. Ad esempio se vuoi caricare soltanto dei contenuti provenienti dallo stesso dominio dovrai aggiungere la seguente riga al tuo file .htaccess:

Header set Content-Security-Policy "default-src 'self';"

In modo da bloccare tutti gli script da fonti esterne. Se invece vuoi consentire gli script da Google Analytics aggiungi questa riga:

header set Content-Security-Policy "script-src 'self' www.google-analytics.com;"

È necessario fare attenzione quando si inseriscono intestazioni di questo tipo perché è facile bloccare delle risorse senza volere e creare quindi dei problemi. È sempre consigliabile eseguire dei test per assicurarsi che tutto funzioni come dovuto e che non stiamo bloccando delle risorse necessarie.

X-XSS-Protection

Sempre allo scopo di ridurre il rischio di attacchi XSS puoi usare l’header X-XSS-Protection, che ti aiuta a proteggerti da questo tipo di attacchi sui browser meno recenti. Aggiungi questa riga al tuo file .htaccess:

Header set X-XSS-Protection "1; mode=block"

Strict-Transport-Security

Questo header serve ad utilizzare HTTP Strict Transport Security (HSTS) che è un meccanismo per proteggere le connessioni HTTPS contro gli attacchi “man in the middle” e l’hijacking delle sessioni.

Con l’header Strict-Transport-Security diciamo al browser che il sito può essere richiamato soltanto per mezzo della crittografia SSL/TLS.

Per abilitarlo è necessario aggiungere la seguente riga al file .htaccess:

Header set Strict-Transport-Security "max-age=31536000" env=HTTPS

X-Frame-Options

L’header X-Frame-Options impedisce l’apertura del tuo sito in un frame o iframe impendendo così gli attacchi clickjacking sul tuo sito web. Questo tipo di attacchi potrebbe rivelare i dati riservati degli utenti su un sito apparentemente normale. Inserendo la seguente riga all’interno del tuo file .htaccess indichi al browser che i frame possono essere aperti soltanto dallo stesso dominio o dalla stessa origine:

Header set X-Frame-Options SAMEORIGIN

Se il tuo sito usa servizi di terze parti puoi specificare i domini consentiti, negando l’accesso a tutti gli altri, ad esempio:

Header set X-Frame-Options "ALLOW-FROM https://sitoconsentito.com/"

Public-Key-Pins

HTTP Public Key Pinning (HPKP) è un meccanismo di sicurezza volto a proteggere i siti web dall’impersonificazione utilizzando certificati fraudolenti rilasciati da autorità di certificazione corrotte o compromesse.

Al primo tentativo di connessione il client apprende quali sono le chiavi pubbliche sicure per connettersi ad un determinato host. Al momento della connessione il client verifica se la catena di certificazione per la trasmissione SSL/TLS contiene una chiave pubblica precedentemente ricevuta tramite HPKP. In caso negativo si ottiene un messaggio di errore e la connessione non viene stabilita.

X-Content-Type

L’ultimo header che puoi aggiungere al tuo sito web è X-Content-Type che serve a proteggere il tuo sito web dal caricamento di fogli di stile e script indesiderati. Per usare questo header aggiungi la seguente riga di codice al tuo file .htaccess:

Header set X-Content-Type-Options "nosniff"

Permessi dei Files sul Server

I permessi dei files della tua installazione (e di tutti i files sul server, ma in un ambiente condiviso tu hai accesso soltanto ai files del tuo account) sono di cruciale importanza per mettere in sicurezza WordPress.

Se i permessi sono troppo “larghi” chiunque può accedere ai tuoi files ed entrare nel tuo sito web. Se sono troppo restrittivi il tuo sito non funzionerà. Per questo motivo è importante impostare i permessi giusti per ogni file o cartella.

File E Cartelle

Puoi usare un plugin gratuito come iThemes Security per eseguire una scansione dei permessi dei files del tuo sito WordPress.

In linea di massima tutti i files dovrebbero avere i permessi impostati a 644 o 640 a eccezione di wp-config.php che dovrebbe essere impostato a 440 o 400

Tutte le cartelle dovrebbero avere i permessi impostati a 755 o 750. Nessun cartella dovrebbe avere i permessi impostati a 777.

Previeni l’hotlinking

Hotlinking è quando usi sul tuo sito un’immagine, ma questa immagine è ospitata su un altro sito web. In pratica usi l’url di un’immagine trovata online invece che caricare l’immagine sul tuo account. Questo processo ruba traffico al sito che ospita l’immagine. Può non sembrare un grande problema, ma può generare dei grandi costi a chi ospita l’immagine.

Ad esempio se un sito con tante visite fa un hotlinking a delle tue immagini può generarti dei grandi costi o finire il traffico mensile a tua disposizione e mandare il tuo account offline.

Per prevenire l’hotlinking in apache non devi far altro che inserire questo codice in .htaccess:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ https://dropbox.com/hotlink-placeholder.jpg [NC,R,L]

Nel codice qui sopra dovresti sostituire yourdomain.com col nome del tuo dominio ed al posto dell’url di dropbox inserire un url (esterna al tuo account) di una immagine che vuoi mostrare al posto dell’immagine del tuo sito web.

Nascondi Avvisi e Notifiche PHP

Seguendo il principio “Security by Obscurity” è una buona idea quella di nascondere gli errori PHP. Questi errori possono fornire delle indicazioni utili ad un hacker che intende attaccare il tuo sito web.

In ambiente di sviluppo questi errori sono utili per convalidare il tuo lavoro e scoprire errori nel codice, ma su un sito web in produzione questi devono essere disattivati in modo da nascondere percorsi, versioni, nomi di file e quant’altro.

Per disabilitare questi errori non devi fare altro che aggiungere queste due righe al file wp-config.php della tua installazione WordPress:

error_reporting( 0 );
ini_set( 'display_errors', 0 );

Nascondi le Informazioni su Apache e PHP

Spesso tra le informazioni che il server invia nelle intestazioni sono incluse informazioni sul software installato sul server e la versione PHP utilizzata.

Puoi evitare di mostrare le informazioni condivise sul server aggiungendo la seguente riga nel file .htaccess della cartella principale del tuo sito web:

ServerSignature Off

Per non mostrare la versione PHP devi invece inserire questa riga all’interno del tuo file .htaccess:

Header unset X-Powered-By

Mantieni tutto separato

Nonostante vendiamo dei piani multidominio, come ad esempio l’hosting WordPress e l’hosting semidedicato, ti consigliamo di mantenere il più possibile i tuoi siti separati.

I siti ospitati sullo stesso account sono soggetti a una vulnerabilità particolare: se uno dei tuoi siti viene bucato è facilissimo bucare tutti gli altri siti sullo stesso account, una cosa che succede spesso.

Se i tuoi sono invece su account diversi, le nostre protezioni impediscono che questo possa succedere, in questo modo se uno dei tuoi siti viene bucato tutti gli altri restano al sicuro.

A questo punto ti stai sicuramente chiedendo che scopo ha un piano multidominio. Consigliamo di tenere tutti i siti insieme in questi casi:

  • hai tanti piccoli siti e cerchi un risparmio
  • si tratta di siti in staging, magari non raggiungibili dall’esterno senza la modifica del file hosts
  • sei una persona esperta e sicura che i tuoi siti non verranno bucati, e se succedesse sai come pulirli e sistemare in tempi brevi

In linea di massima, se hai un sito importante, il nostro consiglio è di ospitarlo su un piano a sé per questioni di sicurezza.

Conclusioni

Se hai seguito la nostra guida avrai capito che mettere in sicurezza WordPress è un processo che prevede un impegno continuo. Mantenere tutto aggiornato, limitare gli accessi e modificare con regolarità le password sono solo alcune delle operazioni che devi compiere per proteggere il tuo sito.

Gli attacchi sono sempre in agguato, per cui oltre a cercare di mantenere sempre tutto sotto controllo assicurati anche di avere sempre a disposizione un backup in modo da poter ripristinare il sito nel caso in cui un hacker lo abbia compromesso.

E tu quali misure utilizzi per proteggere il tuo sito? Fammi sapere con un commento.


Prova gratis e senza impegno uno dei nostri piani hosting per 14 giorni. Non è richiesto nessun dato di pagamento!

Commenti

Lascia un commento

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