Sicurezza gratuita su WordPress

Sicurezza WordPress gratuita

Sebbene molti consideranino la sicurezza su WordPress appannaggio dei professionisti, per molte piccole aziende essere indipendenti e conoscere le pratiche si difesa dagli attacchi online può essere la differenza tra ricevere una brutta battuta d’arresto o meno. Se riescono a farlo completamente gratis certo, è sicuramente meglio.

Beninteso, non si tratta delle uniche operazioni da compiere per proteggere il sito da eventuali, ma anche solo le difese descritte qui di seguito proteggeranno il sito da offensive di minore entità, che in ogni caso contrario avrebbero messo offline il sito.

Per semplificare l’articolo, elencherò una serie di semplici abitudini da apprendere per mantenere più sicuro il sito, e di seguito una serie di pratiche, plugin ed esempi di codice da inserire su WordPress forse un po più complessi.

Si parla spesso di ottimizzazione SEO del sito, ma spesso ci si dimentica che basta una penalizzazione dovuta a delle operazioni dannose compiute contro un sito e tutto il lavoro fatto scomparirebbe.

Effettuare backup

A volte il miglior modo per difendersi è ricostruire daccapo ciò che è andato perduto grazie ad un backup. Di norma gli host offrono servizi del genere , automatizzati e non, quasi in ogni offerta, ma anche se così non fosse è sempre possibile installare all’interno di WordPress uno dei plugin che sopperisce a questa mancanza.

Esistono plugin che tengono una copia del backup in locale, ed altri che invece si occupano di tenere una copia dei dati all’interno di backup in cloud.

Aggiornare WordPress

Ad ogni aggiornamento il codice del CMS cambia, molto spesso a favore della sicurezza. Ogni qualvolta una falla nel sistema viene rilevata, viene effettuato (a breve) un update. Stesso dicasi per le eventuali falle presenti nei plugins.

Dopotutto non sarebbe la prima volta di vedere usato un vecchio plugin come porta per entrare all’interno di WordPress e quindi danneggiarlo dal suo interno.

Wep Application Firewall

Il WAF è una soluzione per non permettere l’ingresso di file infetti, che può essere gestita tramite DNS o tramite plugin (che la maggior parte delle volte si occupano di analizzare il traffico di dati che raggiunge il server)

HTTPS e SSL

Ho dedicato un intero articolo alla funzione del protocollo SSL, che vi consiglio di leggere.

protocollo https

Autenticazione a due fattori

Il sistema di autenticazione a due fattori viene utilizzato molto per la sicurezza mobile, ma di fatto è possibile proteggere WordPress alla stessa maniera.

Anche in questo caso esiste un plugin, Two Factors, che si occupa di rendere facile l’operazione, e che permette perfino di recuperare l’accesso in caso di smarrimento del numero a cui il CMS è associato.

Cambiare username all’account amministratore

Di base, a meno che non si utilizzino servizi di hosting avanzati, durante l’installazione di WordPress viene generato un user generico, admin, che può essere modificato successivamente.

Il consiglio è di modificare immediatamente lo username di accesso dell’amministratore per aumentare la difficoltà di accesso ai malintenzionati.

Password complesse

Una password lunga aiuta a proteggere probabilisticamente l’accesso al sito. Usa lettere maiuscole e minuscole, caratteri speciali e numeri.

Modificare l’accessibilità ai file sensibili tramite il pannello

Un buon modo per creare problemi ad un sito è accedere al suo file .htaccess e inserire redirect verso altri siti o peggio.

Ormai molti servizi di hosting si occupano di nascondere automaticamente i file sensibili presenti nelle directories, come nel caso di coloro che utilizzano CPanel.

Proprio nelle sue ultime installazioni i file sono visibili solo se, tramite accesso da File Manager, viene richiesto espressamente di mostrare i dotfiles (letteralmente, i file che iniziano con il punto).

Cambiare il prefisso dei database

Le tabelle dei database WordPress hanno gli stessi nomi su tutte le installazioni. Quando si utilizza il prefisso wp_ per i nomi delle tabelle del database questo facilita l’accesso agli script dannosi.

Modificando il prefisso del nome della tabella del database in qualcosa di diverso si diminuirà il rischio di attacco, anche se è importante effettuare la modifica prima dell’utilizzo del sito, oppure dopo aver eseguito un backup del sito prima dell’operazione.

Disabilitare l’esecuzione del PHP nelle directories della Cache

Nel caso in cui un file PHP corrotto finisse in una delle directory della cache del sito, la sua esecuzione potrebbe portare alla compromissione di tutta l’installazione.

Questa misura di sicurezza mira a disabilitare l’esecuzione dei file PHP nelle directory della cache, impedendo che tali problemi si verifichino.

Purtroppo però alcuni plugin ignorano le indicazioni sulla sicurezza indicate dal team di WordPress, e archiviano i file PHP nella propria directory della cache, rendendo ineseguibile questa operazione.

Configurare le chiavi di sicurezza

WordPress fornisce alcune chiavi di sicurezza (AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY e NONCE_KEY) per migliorare la crittografia delle informazioni memorizzate nei cookie degli utenti.

Una buona chiave di sicurezza dovrebbe essere lunga 60 caratteri o più. A sua volta il controllo di sicurezza dovrebbe verificare che le chiavi contengano sia caratteri alfabetici che numerici.

Bloccare la scansione degli autori degli articoli

Le scansioni riguardanti gli autori dei post sono una forma di ID phishing.

L’obiettivo delle scansioni è trovare i nomi degli utenti registrati, tra cui l’amministratore, e attaccare la pagina di accesso del sito con un brute force attack.

Per evitare questo tipo di attacco, basta scrivere sul file .htaccess quanto segue:

# BEGIN block author scans
 
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (author=\d+) [NC]
RewriteRule .* - [F]
 
# END block author scans

Questa misura di sicurezza impedisce alle scansioni di accedere al nome dell’autore del post.

Protezione dai bot

Non tutti i bot scansionano la pagina a nostro favore, motivo per cui è possibile effettuare un blocco all’accesso dopo un’analisi approfondita del traffico.

Inserite nell’htaccess le indicazioni sottostanti modificando i nomi dei bot con quelli che scansionano continuamente il vostro sito:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^bot1 [OR]
RewriteCond %{HTTP_USER_AGENT} ^bot2 [OR]
RewriteCond %{HTTP_USER_AGENT} ^bot3
RewriteRule ^(.*)$ http://no.access/

Disabilitare i pannelli di editing dentro WordPress

La voce di menu Aspetto e Temi comprendono delle sezioni di editing diretto di accesso molto utili ma contemporaneamente molto pericolose perché facilmente raggiungibili.

In realtà anche alcuni plugin, come nel caso di Yoast danno accesso agli stessi file sensibili. In ogni caso, la soluzione è semplice e consiste in una singola striscia di codice da inserire dentro il file wp-config che si trova nella route del sito:

define( 'DISALLOW_FILE_EDIT', true );

Protezione degli Hotlink

Si tratta di una speciale difesa impostata sul server che non permette di utilizzare risorse come immagini o altro presi in prestito dal proprio sito.

Per evitare che accada, basta modificare il codice qui sotto inserendo il proprio dominio e inserirlo nel proprio file .htaccess:

RewriteCond %{HTTP_REFERER} !^https://www.francescogiammanco.it/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^https://www.francescogiammanco.it$      [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ - [F,NC]

Disattivare i pingback

I pingback consentono ad altri siti WordPress di lasciare automaticamente commenti sotto i post a cui si collegano. Il collegamento è un’impostazione ed è automatica, motivo per cui può diventare fastidioso.

Non ho visto nulla del genere in Italia ma ho trovato vecchie segnalazioni dell’utilizzo di questo metodo per lanciare attacchi DDoS.

Per disattivare i pingback XML-RPC basta inserire nel file function.php:

function no_self_ping( &$links ) {
 $home = get_option( 'home' );
 foreach ( $links as $l => $link )
  if ( 0 === strpos( $link, $home ) )
   unset($links[$l]);
}
add_action( 'pre_ping', 'no_self_ping' );

L’operazione disabilita anche quelli nei post creati in precedenza, anche se erano stati lasciati abilitati.

Evitare la concatenazione di script per il pannello dell’admin

Alcuni attacchi DDOS mirano alla concatenazione di script che però è possibile evitare con una piccola aggiunta al file wp-config.

define( 'CONCATENATE_SCRIPTS', false );

Impedire l’esecuzione di PHP in /wp-content/uploads

Wp-content/uploads potrebbe contenere file PHP che possono essere eseguiti per rilevare e sfruttare il tuo sito Web.

Questa misura si applica modificando tramite le direttive dei file .htaccess o web.config, come per esempio:

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

Questa indicazione deve essere inserita in un file presente nella directory su cui si vuole bloccare l’esecuzione dei processi presenti nei file PHP.

Disattivare l’indicizzazione delle cartelle

Come ci insegna il seo engineer Calogero Flavio Albano, un buon modo per evitare che le cartelle siano non visualizzabili al fine del computo dei file al loro interno prevede l’utilizzo composito del comando Options All e di un’indicazione precisa, ossia che al totale delle opzioni presente deve essere esclusa l’indicizzazione:

Options All -Indexes

Related Posts

Lascia un commento

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

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.