Guarda le risposte di un qualsiasi modulo non protetto e troverai sempre la stessa cosa: decine di voci spam, contatti falsi, link dannosi e testo senza senso. Non sono persone che compilano il tuo modulo a mano. Sono script automatici controllati da chi attacca e da spammer. Prevenire lo spam e gli invii dei bot ferma questi attacchi prima che ti facciano perdere tempo o danneggino i tuoi dati.
Lo spam è più di un fastidio. Ingombra il database, falsa le statistiche, riempie la casella di posta e può nascondere vere minacce alla sicurezza. Una prevenzione efficace dei bot protegge il tuo modulo e mantiene puliti i tuoi dati.
Cosa imparerai: come i bot automatici attaccano i moduli, perché le protezioni semplici non bastano, quali metodi di prevenzione dei bot funzionano meglio e come applicarli senza infastidire i visitatori legittimi.
Come funzionano gli attacchi dei bot ai moduli
Un bot (abbreviazione di robot) è un programma automatico che esegue compiti ripetitivi. I bot che attaccano i moduli fanno cose come:
- Compilare automaticamente ogni campo con testo casuale
- Inviare il modulo migliaia di volte al giorno
- Inserire link o pubblicità nei campi del modulo
- Cercare vulnerabilità di sicurezza sondando il modulo
- Raccogliere indirizzi email da aggiungere a liste di spam
A differenza di un hacker che può puntare a un modulo specifico, i bot attaccano migliaia di moduli su larga scala. Scandagliano internet in cerca di moduli e, quando ne trovano uno, inviano spam in automatico. Potresti svegliarti con 10.000 invii falsi nella tua casella di posta.
Perché i moduli sono vulnerabili ai bot
I moduli accettano input da chiunque
Per come sono fatti, i moduli sono aperti a internet. Chiunque può trovare il tuo modulo e inviarlo. Non c'è una verifica iniziale che chi lo invia sia una persona vera.
I moduli sono prevedibili
Se un bot riesce a vedere il tuo modulo nell'HTML di una pagina web, può estrarne la struttura e capire quali campi vanno compilati. Questo rende i moduli bersagli facili per l'automazione.
La maggior parte dei moduli non ha protezione
Molti siti pubblicano moduli senza alcun rilevamento dei bot. I bot imparano in fretta a sfruttare questi bersagli indifesi.
Perché le protezioni di base non funzionano
Offuscare i nomi dei campi del modulo
Alcuni pensano che nascondere i nomi dei campi confonda i bot. Ma i bot possono ricavare i nomi dei campi dall'HTML o analizzando l'invio del modulo. Non funziona.
Campi honeypot (campi esca)
Un campo honeypot è un campo del modulo nascosto che i visitatori legittimi non vedono mai. I bot, che non capiscono il CSS o gli attributi nascosti, lo compilano comunque. Puoi rifiutare gli invii in cui l'honeypot è compilato.
Funziona contro i bot molto semplici, ma quelli sofisticati conoscono i campi honeypot e sanno di non compilarli. Oggi da solo è una difesa debole.
Semplici problemi di matematica o domande
"Quanto fa 2 + 2?" sembra una domanda a cui un bot non sa rispondere. Ma l'IA moderna e gli strumenti OCR (riconoscimento ottico dei caratteri) sanno leggere e risolvere semplici problemi di matematica. Questa difesa è superata.
Metodi efficaci di prevenzione dei bot
CAPTCHA
Il CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart) è il metodo di prevenzione dei bot più diffuso. Esistono diversi tipi:
CAPTCHA basato sul testo: gli utenti risolvono un rompicapo di testo distorto. Più vecchio e oggi meno efficace perché l'IA sa leggere il testo distorto.
CAPTCHA basato sulle immagini (reCAPTCHA v2): gli utenti cliccano caselle o riconoscono oggetti nelle immagini. Più affidabile di quello basato sul testo ma ancora non perfetto. È quello che vedi su molti siti.
CAPTCHA invisibile (reCAPTCHA v3): l'utente non vede nulla. Il sistema analizza il suo comportamento (come muove il mouse, quanto in fretta compila il modulo) per stabilire se è una persona. Nessun attrito per gli utenti veri, ma richiede un backend più sofisticato.
Limitazione della frequenza (rate limiting)
Il rate limiting limita quante volte lo stesso indirizzo IP o account utente può inviare un modulo in un dato periodo di tempo. Se chi attacca prova a inviare 1.000 moduli in 10 minuti dallo stesso IP, il rate limiting lo blocca dopo i primi 5 invii in 10 minuti.
Il rate limiting è invisibile agli utenti veri (la maggior parte delle persone non invia lo stesso modulo 20 volte in un'ora) ma efficace contro i bot (che inviano ripetutamente e a una velocità sovrumana).
Verifica dell'email
Chiedi ai visitatori di verificare il proprio indirizzo email cliccando un link in un'email di conferma. I bot di solito non possono accedere alle caselle di posta (o usano indirizzi email falsi che non esistono). Questo elimina molti invii dei bot.
Lato negativo: crea un attrito in più per i visitatori legittimi. Usalo per i moduli di alto valore (iscrizioni, creazione di account) in cui sei disposto ad aggiungere un passaggio in più.
Analisi del comportamento
Analizza come i visitatori interagiscono con il modulo:
- Hanno compilato il modulo a velocità sovrumana (tutti i campi in 0,5 secondi)? Probabilmente un bot.
- Non hanno mai messo il focus su nessun campo (hanno solo scorso con il tasto Tab senza scrivere)? Probabilmente un bot.
- Hanno compilato un campo, l'hanno cancellato, l'hanno compilato di nuovo, l'hanno cancellato di nuovo? Probabilmente una persona.
Richiede JavaScript sul modulo per tracciare le interazioni degli utenti. È invisibile agli utenti veri ed efficace contro i bot semplici.
Device fingerprinting
Analizza le caratteristiche del dispositivo che invia il modulo (tipo di browser, sistema operativo, risoluzione dello schermo, fuso orario e così via). I bot spesso hanno impronte del dispositivo insolite o incoerenti. I dispositivi legittimi hanno schemi che sembrano umani.
È un metodo sofisticato e richiede servizi di terze parti, ma è molto efficace.
Quando usare ciascun metodo
Per un modulo di contatto di base
Usa il rate limiting (invisibile) più un CAPTCHA se ricevi molto spam. La verifica dell'email è facoltativa.
Per un modulo di iscrizione alla newsletter
Usa il rate limiting più la verifica dell'email. Così confermi che l'email è vera e impedisci iscrizioni di massa con indirizzi falsi.
Per un modulo di alto valore (creazione di account, pagamento e così via)
Usa più livelli: rate limiting, CAPTCHA, verifica dell'email. Valuta l'analisi del comportamento per una sicurezza in più.
Per un endpoint API o un accesso programmatico
Usa l'autenticazione API (token o chiavi API) invece del CAPTCHA. Il CAPTCHA non funziona con le API. Il rate limiting è essenziale.
L'impatto sull'esperienza d'uso della prevenzione dei bot
Una forte prevenzione dei bot può creare attrito per gli utenti veri. Bilancia sicurezza e usabilità:
CAPTCHA: aggiunge qualche secondo e un passaggio in più. Visibile e un po' fastidioso, ma ampiamente accettato dagli utenti. Molte persone se lo aspettano.
Verifica dell'email: richiede all'utente di controllare la posta e cliccare un link. Attrito più alto, ma necessario per le azioni di alto valore.
Analisi del comportamento o rate limiting: invisibili. Nessun attrito per gli utenti veri.
Buona pratica: usa prima i metodi invisibili (rate limiting, analisi del comportamento). Mostra un CAPTCHA solo se l'invio del modulo sembra sospetto. Così il 95% degli utenti veri non vede mai un CAPTCHA, mentre i bot quasi sempre sì.
Monitorare gli invii dei moduli per lo spam
Anche con la prevenzione dei bot attiva, un po' di spam può passare. Monitora le risposte:
- Controlla regolarmente i nuovi invii alla ricerca di schemi di spam evidenti
- Cerca invii con testo senza senso o link
- Tieni traccia della frequenza degli invii (se all'improvviso schizza in alto, potresti essere sotto attacco)
- Controlla da quali paesi arrivano gli invii (se servi solo gli Stati Uniti, gli invii da certi paesi possono essere sospetti)
La maggior parte dei moduli permette di segnare gli invii come spam. Usalo per addestrare eventuali modelli di machine learning che possono aiutare a prevenire lo spam futuro.
Che cosa fa WEMASY per prevenire lo spam
I moduli WEMASY includono di default la prevenzione dei bot. Ogni modulo include il rate limiting (più invii dallo stesso IP vengono rallentati) e la protezione CAPTCHA facoltativa (reCAPTCHA v3). Puoi attivare la verifica dell'email per i moduli che la richiedono. WEMASY monitora anche gli invii alla ricerca di schemi di spam e segnala le voci sospette.
Tutti i moduli includono la protezione dallo spam. Protezioni più avanzate sono disponibili nei piani superiori. Vedi i dettagli del tuo piano nella pagina dei prezzi.