Vai al contenuto
Schweizersoftware

Moduli6 min di lettura

Spam nei moduli di contatto: soluzioni senza tracciamento

Honeypot, controllo del tempo, limiti di frequenza e CAPTCHA a confronto: che cosa fa ogni soluzione contro lo spam, quali dati tratta e l’effetto sull’accessibilità.

Copertina su sfondo verde scuro: «Spam nei moduli di contatto», sotto «Soluzioni senza tracciamento». Accanto, un modulo di contatto con un «campo nascosto» tratteggiato e la nota «inviato dopo 38 s», sotto un elenco con un messaggio vero «Freni della e-bike» e uno contrassegnato come spam.

Un’officina di biciclette a Chiasso ha un modulo di contatto sul suo sito: nome, e-mail, messaggio, fine. All’inizio arrivavano richieste di riparazione e domande sulle e-bike. Oggi sono una quarantina di messaggi alla settimana, di cui tre veri. Gli altri offrono ottimizzazione per i motori di ricerca, contengono link a siti dubbi o sono solo sequenze di caratteri.

Il webdesigner propone un CAPTCHA. Il titolare esita: lui stesso si è già disperato davanti a immagini di semafori e strisce pedonali. Ci sono altre vie?

Ce ne sono diverse. Si distinguono per ciò che fanno contro lo spam, per ciò che ne notano le persone che compilano il modulo e per i dati in gioco.

Da dove viene lo spam

Lo spam nei moduli spesso non è inviato da persone, ma da programmi che cercano moduli sui siti e li compilano automaticamente. Da qui l’approccio di quasi tutte le protezioni: distinguere i programmi dalle persone. È proprio per questo che sono nati i CAPTCHA — ed è proprio qui che sta il loro problema, come descrive il W3C.

Le soluzioni in sintesi

Nella sua nota sull’inaccessibilità dei CAPTCHA, il W3C elenca diverse alternative che non richiedono alcun compito visibile. Insieme ai CAPTCHA stessi, il quadro è il seguente:

Soluzione Come funziona Che cosa nota la persona
Honeypot Un campo nascosto che le persone non vedono, ma i programmi compilano Niente
Controllo del tempo I moduli inviati in una frazione di secondo si notano Niente
Limite di frequenza Troppi invii in poco tempo vengono frenati Niente, salvo in caso di accumulo
Filtro dei contenuti Nel testo vengono riconosciuti schemi tipici dello spam Niente, salvo in caso di errore
CAPTCHA con compito Immagini, testo deformato o audio da risolvere Un compito prima dell’invio
Servizio comportamentale Un servizio di terzi valuta se la persona è umana Di solito niente, talvolta un compito

Nessuna soluzione ferma tutto lo spam. Alcune aziende combinano due o tre delle soluzioni discrete e fanno così a meno di un compito visibile.

CAPTCHA e accessibilità

Il W3C osserva che un CAPTCHA non separa solo i computer dalle persone, ma spesso impedisce anche alle persone con disabilità di portare a termine una procedura. Le persone cieche non possono leggere un testo deformato, le persone sorde hanno difficoltà con la variante audio, e per le persone con disabilità cognitive i tentativi falliti ripetuti possono essere molto gravosi.

Le WCAG chiedono in linea di principio un’alternativa testuale per i contenuti non testuali; per i CAPTCHA prevedono un’eccezione, ma chiedono allora una descrizione dello scopo e forme alternative per sensi diversi (criterio 1.1.1). Per un piccolo modulo di contatto la domanda è quindi se l’ostacolo sia proporzionato all’utilità.

Che cosa trattano i servizi di terzi

I servizi comportamentali sono comodi: funzionano in background e di solito non chiedono alcun compito. In cambio analizzano dati del browser della visitatrice. Per questi servizi, il W3C descrive fra l’altro l’analisi di cookie e interazioni sulla pagina ed esprime riserve sulla protezione dei dati. Nelle risposte su reCAPTCHA, Google indica che il servizio imposta un cookie necessario per la sua analisi del rischio, e chiede che l’indicazione di reCAPTCHA resti visibile nel percorso.

Per l’azienda, un servizio del genere significa che dati personali delle visitatrici vanno a un terzo, eventualmente all’estero. Chi raccoglie dati personali informa le persone interessate fra l’altro sui destinatari e, in caso di comunicazione all’estero, sullo Stato (art. 19 cpv. 2 e 4 LPD). Un tale servizio va quindi menzionato nell’informativa sulla protezione dei dati.

Honeypot e controllo del tempo

Le due soluzioni più semplici girano sul proprio server e non hanno bisogno di terzi.

L’honeypot è un campo aggiuntivo invisibile per le persone. Un programma che compila tutti i campi compila anche questo — e l’invio viene scartato. Il W3C cita espressamente gli honeypot come alternativa. Due aspetti richiedono cura: il campo dev’essere nascosto anche ai lettori di schermo, altrimenti una persona cieca sente un campo che non deve compilare. E la compilazione automatica del browser non dovrebbe prenderlo di mira.

Il controllo del tempo misura quanto passa fra il caricamento della pagina e l’invio. Una persona ha bisogno di almeno qualche secondo per nome, e-mail e messaggio; un programma spesso solo di una frazione. Un limite troppo severo colpisce però chi compila in fretta con dati salvati.

Limiti di frequenza e filtri

Un limite di frequenza frena quando dalla stessa fonte arrivano molti invii in poco tempo. Anche questo metodo è citato dal W3C. Presuppone che il server riconosca una fonte, di solito dall’indirizzo IP. Per la minimizzazione dei dati significa: conservarlo solo finché serve al freno, cioè minuti od ore, non mesi.

Un filtro dei contenuti esamina il testo, per esempio la presenza di molti link o di formulazioni tipiche. Il W3C menziona i filtri antispam come ulteriore possibilità. Qui il rischio sta negli errori: una vera richiesta con due link a pezzi di bicicletta può restare bloccata nel filtro.

Che cosa resta dopo il filtro

Ogni soluzione sbaglia in entrambe le direzioni: un po’ di spam passa, e ogni tanto una vera richiesta finisce nella cartella sbagliata. Aiuta quindi avere un posto in cui i messaggi scartati restano per un po’ e possono essere scorsi prima di essere cancellati. E per chi compila il modulo: un’alternativa, come un numero di telefono o un indirizzo e-mail, nel caso l’invio non funzioni.

Quando il modulo stesso invia messaggi

Una particolarità di alcuni moduli di contatto attira lo spam in modo particolare: l’opzione «Inviami una copia». Il modulo invia allora un’e-mail all’indirizzo inserito nel campo — e quell’indirizzo può essere qualsiasi. Un programma può così usare il modulo dell’officina per inviare messaggi a sconosciuti, con l’officina come mittente. Rinunciare a questa opzione, o inviare la copia solo dopo una conferma, toglie la base a questo tipo di abuso.

E per i messaggi che passano comunque: i link nello spam portano spesso a pagine che cercano di carpire dati di accesso; chi non ci clicca evita il rischio.

Per l’officina di Chiasso

L’officina rinuncia al CAPTCHA. Il suo modulo riceve un honeypot nascosto anche alle tecnologie assistive e un controllo del tempo di pochi secondi. I messaggi trattenuti finiscono in una cartella separata che il titolare scorre il venerdì. Sotto il modulo ci sono numero di telefono e orari d’apertura. Le prossime settimane diranno se basta; un limite di frequenza si potrebbe aggiungere più tardi.

Nell’app Moduli che stiamo sviluppando, le risposte vengono cifrate nel browser di chi risponde e tornano leggibili solo presso la destinataria. Per la protezione dallo spam seguiamo lo stesso principio di questo articolo: accontentarsi dei dati di cui un modulo ha comunque bisogno.

Fonti

  1. 1.W3C: Inaccessibility of CAPTCHA — Alternatives to Visual Turing Tests on the Web (verificato il 25 settembre 2026)
  2. 2.Google for Developers: reCAPTCHA FAQ (verificato il 25 settembre 2026)
  3. 3.Bundesgesetz über den Datenschutz (DSG, SR 235.1) (verificato il 25 settembre 2026)
  4. 4.W3C: Web Content Accessibility Guidelines (WCAG) 2.1 (verificato il 25 settembre 2026)
Schweizerform

Da questa idea è nata Schweizerform.

Moduli online crittografati end-to-end, realizzati e ospitati in Svizzera.

Scegliere la lingua

Questa pagina si apre nella lingua scelta.