Skip to content

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.

Picchi di SPAM usando CF7
SPAM ricevuto installando CF7

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.

Una "Page Rule" di Cloudflare per proteggere WordPress
Una “Page Rule” di Cloudflare per proteggere WordPress

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.

Bloccare il traffico con il Firewall di Cloudflare
Bloccare il traffico con il Firewall di Cloudflare

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

Articoli correlati

Autore

Commenti |7

Lascia un commento Lascia un commento
  1. Federico 3 commenti

    Ottimo articolo, come sempre!
    Ciao

    1. Giovanni Sacheli 756 risposte

      Grazie Federico, avevi problemi di spam?

  2. daniele 2 commenti

    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?

    1. Giovanni Sacheli 756 risposte

      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/

  3. daniele 2 commenti

    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!

  4. Erik 1 commento

    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!

    1. Giovanni Sacheli 756 risposte

      Grazie mille Erik, lo provero!

Lascia un commento

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

Ultimi articoli aggiornati

Richiedi un preventivo SEO e Google Ads

Porta il tuo sito web al livello successivo con l’expertise di EVE Milano. La nostra agenzia di Search Marketing ha ricevuto oltre 1130 richieste di preventivo, un segnale chiaro della fiducia che imprenditori e manager, come te, ripongono nella nostra specializzazione tecnica e verticale nella SEO e PPC. Se la tua organizzazione cerca competenze specifiche per emergere nei risultati di Google, noi siamo pronti a fornire quel valore aggiunto. Affidati alla nostra esperienza per fare la differenza.
Richiedi un preventivo

Non perderti altre guide, iscriviti per ricevere un avviso mensile con gli aggiornamenti del blog!

Iscriviti alla newsletter!

Informativa sui cookies

Noi e terze parti selezionate utilizziamo cookie o tecnologie simili per finalità tecniche e, con il tuo consenso, anche per le finalità di esperienza e misurazione come specificato nella cookie policy. Puoi liberamente prestare, rifiutare o revocare il tuo consenso, in qualsiasi momento, accedendo al pannello delle preferenze. Il rifiuto del consenso può rendere non disponibili le relative funzioni. Usa il pulsante “Accetta” per acconsentire. Usa il pulsante “Rifiuta” per continuare senza accettare.