Un modulo di iscrizione alla newsletter sembra la parte meno rischiosa di un sito: un campo per l'email e un pulsante. Eppure è uno dei punti più sfruttati dai bot. Le iscrizioni false non sono solo un fastidio statistico: possono trascinare il tuo dominio dentro un attacco contro terzi, riempire la lista di spam trap e far crescere le segnalazioni proprio sui messaggi più importanti.
Perché i bot compilano i moduli
Le motivazioni sono diverse, e conoscerle aiuta a scegliere le difese giuste.
List bombing
È la forma più dannosa. Un attaccante vuole sommergere la casella di una vittima, spesso per nascondere tra centinaia di messaggi un avviso importante, come la notifica di un acquisto fraudolento o di un cambio di password. Per farlo, un bot iscrive l'indirizzo della vittima a migliaia di moduli su siti diversi. Ogni sito invia una conferma o un messaggio di benvenuto, e la casella viene inondata in pochi minuti.
Il tuo sito non è il bersaglio, ma diventa uno strumento. La vittima segnala come spam i messaggi ricevuti, e la tua reputazione ne soffre.
Test di indirizzi e riempimento
Altri bot inseriscono indirizzi presi da elenchi per verificare quali esistono, osservando le risposte del sito, o compilano qualunque modulo trovino con dati casuali. Il risultato è una lista piena di indirizzi inesistenti, che generano rimbalzi, o di caselle trappola.
I segnali di un attacco
Un attacco in corso si riconosce di solito da alcuni sintomi:
- un picco improvviso di iscrizioni, spesso di notte o a orari insoliti;
- molte iscrizioni con nomi casuali o con il nome uguale all'indirizzo;
- indirizzi tutti diversi ma richieste provenienti da pochi IP, oppure al contrario da moltissimi IP in rapida successione;
- un aumento di rimbalzi o di segnalazioni sulle email di conferma;
- iscrizioni a liste diverse con lo stesso indirizzo in pochi secondi.
Le difese, dalla più semplice
Nessuna misura da sola è sufficiente; la protezione nasce dalla combinazione.
| Difesa | Cosa blocca | Impatto sugli utenti |
|---|---|---|
| double opt-in | iscrizioni non confermate restano inattive | un clic in più |
| campo honeypot | bot semplici che compilano ogni campo | nessuno |
| controllo del tempo di compilazione | invii troppo rapidi per essere umani | nessuno |
| limiti per IP e per indirizzo | raffiche dallo stesso punto | nessuno, se tarati bene |
| CAPTCHA o verifica invisibile | bot più evoluti | variabile |
| verifica lato server dei dati | indirizzi malformati, domini inesistenti | nessuno |
Honeypot e tempo di compilazione
Il campo honeypot è un campo nascosto agli utenti con i fogli di stile, ma visibile nel codice. Una persona non lo vede e lo lascia vuoto; molti bot lo compilano. Se il campo arriva pieno, l'iscrizione viene scartata in silenzio.
Il controllo del tempo confronta il momento in cui la pagina è stata caricata con quello dell'invio: un modulo compilato in meno di un secondo difficilmente è opera di una persona.
Limiti di frequenza
Conviene limitare quante iscrizioni accetta il modulo dallo stesso IP in un certo intervallo, e quante email di conferma possono partire verso lo stesso indirizzo in un giorno. Il secondo limite è il più importante contro il list bombing: anche se un bot riesce a iscrivere la vittima, il tuo sito non le invierà più di un messaggio.
CAPTCHA
I sistemi di verifica, visibili o invisibili, sono efficaci contro i bot più evoluti, ma hanno un costo: rendono il modulo meno accessibile e possono comportare il trasferimento di dati a terzi. È ragionevole attivarli quando le difese invisibili non bastano, o solo dopo che il sistema ha rilevato un comportamento sospetto.
Il ruolo dell'email di conferma
Il double opt-in protegge la lista, perché le iscrizioni false non vengono mai confermate. Ma da solo non protegge le vittime del list bombing, che ricevono comunque l'email di conferma. Per questo l'email di conferma deve essere:
- inviata una sola volta per indirizzo in un periodo ragionevole;
- breve, senza contenuti promozionali;
- chiara nell'indicare che, se non è stata richiesta, basta ignorarla.
Un messaggio di conferma sobrio riduce anche la probabilità che la vittima lo segnali come spam.
Pulire dopo un attacco
Se un attacco è già avvenuto, le iscrizioni non confermate vanno eliminate, e quelle confermate nel periodo sospetto vanno controllate. Con il single opt-in il lavoro è più difficile: bisogna isolare i contatti aggiunti durante l'attacco e trattarli come non verificati, chiedendo una conferma o escludendoli dagli invii.
Nel mio lavoro, la combinazione di honeypot, limite di un'email di conferma al giorno per indirizzo e double opt-in ha fermato la quasi totalità dei tentativi senza introdurre CAPTCHA visibili.
In sintesi
- I moduli di iscrizione sono usati dai bot anche per attaccare terzi con il list bombing.
- Le iscrizioni false portano rimbalzi, spam trap e segnalazioni.
- Honeypot, controllo del tempo e limiti di frequenza fermano molti bot senza disturbare gli utenti.
- Limitare le email di conferma per indirizzo protegge le vittime del list bombing.
- Il double opt-in impedisce che le iscrizioni false entrino nella lista attiva.