Ho un approccio semplice per fermare gli spammer che è efficace al 100%, almeno nella mia esperienza, ed evita l'uso di reCAPTCHA e approcci simili. Sono passato da quasi 100 spam al giorno su uno dei moduli html di uno dei miei siti a zero negli ultimi 5 anni una volta implementato questo approccio.
Funziona sfruttando le capacità di posta elettronica ALIAS della maggior parte degli script di gestione dei moduli html (io uso FormMail.pl), insieme a un "codice" di invio grafico, che può essere facilmente creato nel più semplice dei programmi di grafica. Uno di questi grafici include il codice M19P17nH e la richiesta "Immettere il codice a sinistra".
Questo particolare esempio utilizza una sequenza casuale di lettere e numeri, ma io tendo a utilizzare versioni non inglesi di parole familiari ai miei visitatori (ad esempio "pnofrtay"). Notare che il prompt per il campo del modulo è incorporato nell'immagine invece che apparire nel modulo. Quindi, per un robot, quel campo modulo non presenta alcun indizio sul suo scopo.
L'unico vero trucco qui è assicurarsi che il tuo modulo html assegni questo codice alla variabile "destinatario". Quindi, nel tuo programma di posta, assicurati che ciascuno di questi codici che utilizzi sia impostato come alias di posta elettronica, che punta a qualsiasi indirizzo di posta elettronica che desideri utilizzare. Poiché nel modulo non è presente alcun tipo di richiesta di lettura da parte di un robot e nessun indirizzo e-mail, non ha idea di cosa inserire nel campo vuoto del modulo. Se non inserisce nulla nel campo del modulo o altro tranne i codici accettabili, l'invio del modulo non riesce con un errore di "destinatario errato". Puoi usare una grafica diversa su forme diverse, anche se nella mia esperienza non è realmente necessaria.
Naturalmente, un essere umano può risolvere questo problema in un lampo, senza tutti i problemi associati a reCAPTCHA e schemi simili, più eleganti. Se uno spammer umano risponde all'errore del destinatario e programma il codice dell'immagine nel robot, puoi cambiarlo facilmente, una volta che ti rendi conto che il robot è stato codificato per rispondere. In cinque anni di utilizzo di questo approccio, non ho mai ricevuto spam da nessuno dei moduli su cui lo uso né ho mai ricevuto un reclamo da alcun utente umano dei moduli. Sono certo che questo potrebbe essere superato con la funzionalità OCR nel robot, ma non l'ho mai visto su nessuno dei miei siti che utilizzano moduli html. Ho anche usato "spam trap" (codice html nascosto "vieni qui" che punta alle mie politiche anti-spam) con buoni risultati, ma erano efficaci solo al 90%.