Chi usa il plugin CF7 per WordPress sa cosa vuol dire ricevere SPAM dal form di contatto, lo SPAM vero. Questo flagello è capitato anche a me e ti racconto come ho fatto ad uscirne pulito.
Dal 2010 sono stato un sostenitore di FSCF – Fast & Secure Contact Form, un plugin per generare form custom davvero valido. Purtroppo nel 2017 il plugin è stato comprato da uno spammer per inserirci un virus, il plugin è quindi stato rimosso dal repository WP e non è più disponibile. Ho resistito qualche mese con una versione precedente ma non mi sentivo in pace con me stesso. Faccio fatica a dormire la notte con un plugin discontinued installato nel sito.
Con mio immenso dispiacere ho dovuto cambiare plugin per il form e la scelta è stata difficile, ne ho provati davvero tanti. Per quanto riguarda il mio blog sono un convinto minimalista: voglio pagine leggere e veloci, pochi CSS, pochi JS, pochi fronzoli e solo il necessario. La maggior parte dei plugin per form sono “pesanti”, offrono cose che non mi servono e appesantiscono il mio stomaco.
Alla fine ho dovuto scegliere CF7, plugin che ho sempre evitato ed incompreso. Per redirezionare una lead ad una thank you page serve un plugin del plugin. Per creare un honeypot anti-SPAM serve un plugin del plugin. Praticamente per fare qualsiasi cosa serve un plugin del plugin. Caratteristica minimalistica che apprezzerei, se non fosse che poi CF7 inserisce il suo file CSS in tutte le pagine del sito, anche quelle senza form.
A metà ottobre 2018 ho cancellato FSCF e attivato CF7. I cancelli degli inferi si sono aperti.
Ogni email SPAM, oltre ad intasarmi la posta aziendale, generava un GOAL in Analytics dato che ho configurato le conversioni. Rigami la macchina piuttosto, ma questo no. Anni di statistiche sporcate, non potevo subire torto peggiore.
Con FSCF non avevo questo problema, aveva la funzione recaptcha e honeypot che, insieme ad Akismet, annullavano il 99,9% delle email indesiderate che partivano dal form di contatto. CF7 è estremamente diffuso, è installato su milioni di siti WordPress, è normale che sia preso di mira dai simpatici Hacker.
Ho sbattuto la testa su qualche muro, a metà novembre ho risolto il problema e dicembre è tornato ai valori medi. Vediamo cosa ho fatto per annullare lo SPAM su CF7.
Combattere lo SPAM con CF7
Per fermare lo SPAM ho fatto molti tentativi, alcuni inutili, altri fortunatamente utili.
Per prima cosa ho attivato il recaptcha di Google dato che è supportato nativamente dal plugin (…ed è di Gugol). Purtroppo non è servito a nulla.
Successivamente ho attivato “anche” Akismet in CF7, dato che non ho letto da nessuna parte che va in conflitto con il recaptcha (!). Per qualche giorno non ricevetti email. Lo SPAM era sparito, ma anche le lead.
Provai quindi a disattivare recapcha per lasciar lavorare solo Akismet. Le cose andarono pochino meglio, ma lo SPAM era ancora troppo.
Sbirciando nella documentazione di CF7 ho trovato un metodo che poteva aiutarmi: il quiz. Per implementare un quiz in CF7 devi usare lo shortcode specifico per questa funzione.
[quiz capital-quiz id:qatest
"La capitale del Giappone è Roma o Tokio?|Tokyo"
"Quale numero è maggiore, 1 o 2?|2"
"La fragola è rossa o nera?|rossa"]
Il quiz ha ridotto drasticamente lo SPAM.
Per concludere ho sfruttato alcune funzioni utili di Cloudflare: le “regole” ed il “firewall”.
Le regole le ho usate per aumentare la sicurezza su alcune pagine che generavano i maggiori volumi di SPAM. Ho colto l’occasione per alzare il livello di sicurezza al massimo (Sono sotto attacco!) sulla pagina di login dato che avevo un attacco brute force in corso.
Con il Firewall ho bloccato il traffico da tutti quei paesi che generavano SPAM ed, ovviamente commercialmente non rilevanti per me. Inoltre ho bloccato alcuni bot particolarmente invasivi.
Grazie ad Akismet, la funzione Quiz di CF7 ed un fine tuning di Cloudflare ho azzerato lo SPAM, e soprattutto le lead hanno ripreso ad arrivare.
Anche tu hai risolto problemi di SPAM con Contact Form 7? Raccontami come hai fatto così tutti i lettori avranno nuovi spunti “creativi! :D
Commenti |7
Lascia un commentoOttimo articolo, come sempre!
Ciao
Grazie Federico, avevi problemi di spam?
Siamo alle prese con lo stesso problema, ma honeypot, quiz e altro non risolvono o perlomeno riducono lo spam.
uno tra gli ultimi aggiornamenti di cf7 (nn ricordo la versione) non supporta piu’ il recaptcha 2.0 ma solo il 3.0. Solo che per farla funzionare correttamente devi rigenerare le key di google, se non lo fai semplicemente non filtra nulla. e in piu’ il recaptcha 3 blocca anche mail legittime…
Il mercato di riferimento per questi siti è l’ italia, quindi da un controllo con awstats da cpanel, abbiamo visto tanto traffico dalla Bulgaria, che bloccheremo per vedere se risolve.
Quale versione utilizzi di Cloudflare? non ricordo se nel piano gratuito puoi bloccare le nazioni come hai fatto tu. Come mai non hai impostato direttamente nell’ htaccess il blocco degli ip? Cloudflare aggiorna in automatico i range degli ip?
Ciao Daniele, su CF in versione free puoi impostare fino a 5 regole nel firewall, puoi bloccare il traffico da specifici country, da IP e altro.
Uso Nginx quindi non ho .htaccess. Sul web server uso diverse protezioni: una black list di IP da bloccare (Nginx Bad Bot Blocker), fail2ban e ufw per attenuare i rompiscatole. Cloudflare è un’aiuto in più che uso sulla pagina di login e per bloccare a prescindere alcuni country.
Ad ogni modo, se honeypot e quiz non risolvono, allora il problema secondo me non è li (nel form di contatto intendo)…
Se il problema è la mail potresti verificare la mail con un record SPF
– https://support.google.com/mail/answer/6227174?hl=en
– https://support.google.com/a/answer/33786?hl=en
– https://kinsta.com/blog/email-authentication/
Ciao Giovanni,
scusa il ritardo, settimana di fuoco! Ottimo suggerimento su Nginx, sento i tecnici se già attivo o meno.
Per l’ invio da cf7 utilizziamo un smtp dedicato e le email sono già da tempo con record spf.
Ora proverei a cambiare l’URL della pagina contatti… e vediamo!
Ciao, sono Erik e ho fatto un plugin per contact form 7 che serve appunto per fermare lo spam!
https://wordpress.org/plugins/cf7-antispam/
Se ti va provarlo e parlarne, penso che possa essere utile!
Grazie mille Erik, lo provero!