2010-07-12 8 views
5

Sono in esecuzione ColdFusion MX, quindi non ho la possibilità di utilizzare lo cfimage Captcha functionality integrato nella mia applicazione, prima dell'invio del modulo.Come posso impedire l'invio automatico dei moduli da parte dei bot?

Ma il problema è senza captcha, i bot inviano i moduli.

Quale sarà il modo migliore per impedire l'invio automatico?

+0

Perché non puoi usare il captcha? Che linguaggio di programmazione stai usando? –

+0

Sto usando Coldfusion MX, che non ha il supporto integrato per Captcha. – user160820

+2

di Coldfusion 8, ha il supporto per Captcha. – user160820

risposta

6

Dai uno sguardo allo cfformprotect - funzionerà con CFMX 6 e tutti i motori successivi.

L'obiettivo è essere completamente accessibile, e invisibile alla maggior parte degli utenti, con un assortimento di metodi per bloccare bot e spammer.

Inoltre si potrebbe desiderare di guardare un CF wrapper for reCaptcha, che è compatibile con CFMX 7.

4

Una tecnica che ho usato con una tecnologia diversa era l'uso di pulsanti immagine. Il tuo gestore POST ottiene le coordinate x, y in cui sono state fatte clic sulle immagini. Ho trovato che i bot (che stanno solo generando richieste di posta) stavano passando a 0,0 e lasciando cadere quelle richieste sul pavimento ho portato i post di spam a meno di quelli reali. Scusa se non so come farlo in CF, ma spero che la tecnica ti sia utile.

9

I captcha non devono essere immagini!

provare una delle seguenti soluzioni:

  • maggior parte dei bot non capiscono CSS. Crea due pulsanti di invio, il primo con un valore che verrà rifiutato dal server, il secondo con un valore che verrà accettato dal server. Nascondi il primo usando CSS.
  • Chiedi all'utente di rispondere a un semplice problema di matematica. Ciò richiederà di creare il problema matematico e di memorizzare la soluzione prevista da qualche parte (come la sessione dell'utente), quindi confrontare la risposta inviata dall'utente con la risposta memorizzata. Per una protezione extra, puoi creare semplici domande di addizione, sottrazione e moltiplicazione. Evita la divisione, i remainder sono un problema per alcuni utenti.
  • I bot leggono i nomi degli elementi del modulo e tendono a ignorare le etichette di testo. Prova a creare una casella di controllo denominata "optout" (come una newsletter), selezionata per impostazione predefinita. Accanto alla casella, chiedi all'utente di deselezionare la casella di controllo se sono umani. Anche la tecnica opposta funziona (casella di controllo deselezionata che chiedi all'utente di verificare).

Tutte queste soluzioni possono essere eseguite senza codice di terze parti o chiamate API.

Detto questo, reCAPTCHA è abbastanza buono e facile da integrare in quasi tutti gli ambienti.

+0

Pur non essendo convenzionale, mi piace la soluzione CSS che hai fornito. – Seidr

+0

Due pulsanti di invio possono finire con gli utenti che inviano il modulo premendo il tasto Invio/Ritorno che viene inserito nel telaio perché il browser potrebbe utilizzare il valore di invio (nascosto) per primo. Allo stesso modo, un campo di modulo nascosto in CSS di, ad esempio, URL, verrà inserito dai bot, ma potrebbe anche essere compilato dal completamento automatico del modulo. – amcgregor

0

ne dite di usare il metodo di calcolo? Proprio come 8 + 5 =?

O

come sull'utilizzo ColdFusion.Ajax.submitForm?

Problemi correlati