Come migliorare la sicurezza di WordPress tramite Google Re-captcha
22 Maggio 2020
Quest’oggi vedremo come si può prevenire lo spam nei commenti in siti WordPress utilizzando Google recaptcha e, più in generale, come si può neutralizzare molti degli attacchi più frequenti alle pagine di login e di registrazione di WordPress.
Un aspetto frequentemente sottovalutato da chi utilizza WordPress è che, proprio per la sua fama e la sua diffusione in Internet (si calcola che oltre il 30% dei siti web al mondo sia basato proprio su questo CMS), si tratta del bersaglio preferito da una pletora di spambots e attacchi di ogni genere. Alcuni di questi mirano ad ottenere l’accesso da amministratore di WordPress, e quindi al completo controllo, mentre altri “soltanto” ad inondare di spam il sito stesso (es: nei commenti) oppure a sfruttarlo come mezzo per installare scripts Php malevoli, generare spam indirizzato verso terzi ed altre attività molto poco desiderabili.
Il primo errore da non commettere è pensare che un piccolo sito aziendale di una realtà locale possa sfuggire ai radar e all’interesse degli spammers.
Che cos’è il Google Re-captcha e come ci aiuta
La prima versione in cui tutti, prima o poi, ci siamo imbattuti è quella della celebre “spunta” su una casella generata dinamicamente – un gesto tanto semplice per un utente umano quanto complesso da aggirare (almeno i primi tempi) per un software che impersona un utente visitatore. Il risultato che si vuole ottenere è proprio quello di filtrare il traffico di utenti non reali, per prevenire lo spam nei commenti e vari tipi di attacco a tutte le pagine dove è previsto un input dell’utente: quelle che contengono moduli (form) di contatto o trasmissione dati. Nel caso di WordPress, le pagine contenenti form e quindi prese di mira possono essere:
- Login al backend di WordPress
- Pagine contenenti moduli di contatto
- Recupero password dei login di WordPress
- Moduli per l’inserimento di commenti agli articoli
- Moduli per l’inserimento di recensioni ad articoli o prodotti
- Moduli generati da plugins come Contact Form 7, Gravity forms e altri
- Moduli di registrazione degli utenti, usati da plugin (Woocommerce, BuddyPress, ecc.)
Le versioni successive di questo strumento, messo a disposizione gratuitamente da Google, hanno come obbiettivo quello di migliorare la capacità di intercettare l’attività non umana da quella di utenti reali, quindi ecco apparire nel corso degli ultimi anni alcune varianti: dalla visualizzazione di una fotografia in cui l’utente deve identificare e cliccare su elementi presenti nell’immagine (es: un semaforo, un’insegna ecc.) fino alla variante più “intelligente” di cui ci occupiamo proprio oggi, ovvero l’invisible re-Captcha.
Come dice la parola stessa, questa variante del classico re-Captcha viene eseguita all’ingresso delle pagine protette, come negli altri casi, ma a differenza degli altri non richiede automaticamente una interazione del visitatore, bensì ne valuta il comportamento sulla base di alcuni parametri specifici (movimenti del mouse, origine dell’IP, referrer, ecc.), che Google ha stabilito essere ricorrenti e determinanti per distinguere un comportamento umano da uno non umano. Solo se il re-captcha sospetta che la connessione alla pagina potrebbe non essere originata da un visitatore in carne ed ossa, in quel caso si interpone nell’accesso alla pagina chiedendo una operazione di verifica di tipo cognitivo, come per le altre varianti di re-Captcha.
L’invisible re-Captcha resta il meno “invasivo” rispetto all’ esperienza di navigazione di un sito web per la maggior parte degli utenti reali, quindi ovviamente il più apprezzato.
1. Come installare l’ Invisible re-Captcha su WordPress
- Per prima cosa dal pannello di amministrazione di WordPress entriamo nel menù a sinistra Plugin > Aggiungi nuovo
- Facciamo una ricerca per “Invisible re-captcha“
- Il primo risultato della ricerca è il plugin che ci interessa installare, quindi clicchiamo sul bottone “Installa” e attendiamo il completamento dell’installazione, quindi clicchiamo sul bottone “Attiva” (apparso al posto del precedente) per completare la procedura.
Da questo momento troveremo sotto al menù Impostazioni la voce relativa ad Invisible re-Captcha (fig. 2). Quello che ci manca per poter utilizzare il plugin è avere i due parametri di accesso al servizio di Google, il Site Key e la Secret Key. Si tratta di due chiavi cifrate che dovremo generare dall’apposita pagina che Google ha creato per la gestione dei nostri re-captcha, come stiamo per vedere nel prossimo paragrafo.
2. Attiva re-Captcha con un account Google.
Per poter funzionare, il plugin necessita di essere configurato con le chiavi di accesso del servizio re-Captcha di Google. Basta avere un account ad uno qualsiasi dei servizi di Google (es: una casella Gmail) per poter accedere gratuitamente tramite questa pagina.
Una volta effettuato il login, clicca sul “+” per registrare un nuovo sito. Ti si presenterà una schermata come la seguente:
In questa schermata puoi assegnare un nome al profilo re-Captcha (1), ad esempio il nome stesso del sito, selezionare la versione Invisible re-Captcha che è quella che ci interessa (2), quindi specificare su quale dominio dovrà essere funzionante (3). Al termine accetta i Termini del servizio e quindi salva: la generazione delle chiavi di accesso è immediata, denominate Site Key e Secret Key. Dovrai semplicemente copiarle e incollarle nei corrispondenti spazi della configurazione del plugin sul tuo WordPress (vedi fig. 2, nei campi evidenziati in giallo)
3. Configurazione del plugin Invisible re-Captcha per WordPress
L’ultima operazione, nel caso tu voglia variare le impostazioni default del plugin, consiste nell’indicare al plugin quali moduli form e quali procedure si desidera “schermare” dietro l’ Invisible re-Captcha che abbiamo appena attivato. Per fare ciò, basterà tornare nella Dashboard di WordPress, quindi andare in Impostazioni > Invisible recaptcha e spostarsi con i tab nelle sezioni, spuntando le caselle che ci interessano:
Ad esempio, in fig.4 stiamo dicendo al plugin di proteggere con il recaptcha:
- la pagina di Login di WordPress
- la pagina di registrazione di nuovi utenti (se la registrazione è abilitata in WP)
- tutti gli articoli in cui sono abilitati i commenti – grazie al re-captcha potrai prevenire lo spam nei commenti in maniera molto più efficace!
- la pagina che consente il recupero/reset della password di accesso (se abilitata)
Analogamente, spostandosi nelle altre tabs, potremo definire la protezione recaptcha verso altri plugin, se presenti.