risposta-alla-domanda-sullo-sviluppo-web-bd.com

CAPTCHA su cellulare: quali sono le alternative?

Dal punto di vista UX, i CAPTCHA sono cattivi, cattivi, cattivi.

Ma supponiamo di avere questo come requisito. Ed è per un'app ibrida (app compilata, ma basata su una piattaforma HTML5).

Sto cercando di scoprire:

  • il traffico bot da un iPhone (o Android) è effettivamente un problema? (o - la mia teoria - si tratta di un requisito di conservazione obsoleto che è stato tagliato e incollato nella tecnica documenti obbligatori dal 1998?)
  • In tal caso, esistono alternative migliori incentrate sui dispositivi mobili rispetto a un altro-fastidioso-CAPTCHA?
111
DA01

Per quanto riguarda la tua domanda se un bot può effettivamente andare e inviare un modulo automaticamente, questo è quello che ho trovato su na risposta su Stack Overflow .

È relativamente più difficile automatizzare l'invio dei dati all'interno di app native. Ciò è dovuto al fatto che non puoi semplicemente scrivere uno script automatico per scoprire elementi all'interno del codice sorgente e quindi imitare l'invio del modulo. Inoltre, dovrai (acquistare e) installare l'applicazione (su un dispositivo fisico o in un simulatore).

Detto questo, uno dei commenti suggerisce in realtà che l'invio di moduli è molto più semplice su dispositivi mobili.

È molto più facile farlo per un'app mobile poiché di solito parlano con un'API REST (o qualche altra API ben definita), non hai nemmeno bisogno di un raschietto.

Quindi per quanto riguarda la tua domanda I non ho ancora una risposta definitiva sulla necessità di CAPTCHA.

Detto questo, per quanto riguarda i CAPTCHA per i dispositivi mobili, sono stati suggeriti numerosi approcci interessanti.

  • Il dispositivo di scorrimento CAPTCHA : Luke Wroblewski suggerisce di utilizzare un dispositivo di scorrimento CAPTCHA per coinvolgere l'interazione umana e impedire l'invio automatico di contenuti. Per citare articolo :

    Invece delle stringhe di testo distorte che caratterizzano la maggior parte dei CAPTCHA moderni (sopra), il modulo di iscrizione su They Make Apps utilizza un dispositivo di scorrimento che chiede alle persone di: "mostraci il tuo lato umano; fai scorrere il cursore alla fine della riga per creare il tuo account." Spostando il dispositivo di scorrimento verso destra, il modulo viene inviato completamente e si attiva la convalida dell'errore proprio come farebbe un pulsante di invio standard.

The slider CAPTCHA

Mentre l'opzione sopra è una soluzione basata sul web, la facile interazione con le diapositive si adatterebbe al paradigma mobile e si adatterebbe anche al design.

  • Un'altra opzione è quella di utilizzare il riconoscimento delle immagini per battere l'invio automatico dei moduli . Ciò si ridimensionerebbe all'interno del design dell'app e sarebbe anche amichevole in quanto l'utente può fare clic e selezionare l'opzione giusta. Un esempio di questo è dato a questo link .

Image recognition CAPTCHA

  • MotionCAPTCHA: Un'altra opzione che ho trovato richiede all'utente di tracciare un percorso sullo schermo per completare CAPTCHA. Per citare l'articolo:

    MotionCAPTCHA è un plugin jQuery CAPTCHA basato su HTML5 Canvas. Richiede agli utenti di disegnare la forma che vedono nell'area di disegno per inviare un modulo. Potrebbe essere una fantastica alternativa ai captcha mobili che gli utenti mobili apprezzeranno sicuramente che non devono inserire quei piccoli numeri.

MotionCAPTCHA

  • Ring CAPTCHA : questo è interessante e richiede di fornire un numero di telefono per convalidare l'invio e di inviare un messaggio di testo o ti chiama per fornire un codice PIN per la convalida.

Ring CAPTCHA

  • NuCaptcha : NuCaptcha è un'altra opzione che utilizza il modello CAPTCHA tradizionale ma è ottimizzata per i dispositivi mobili. Per citare questo TechCrunch articolo:

    La versione mobile di NuCaptcha include la stessa semplicità della versione web. Ma i nuovi captcha mobili ottimizzati offrono un'esperienza utente coerente su più dispositivi. Ad esempio, quando un utente fa clic su un touchscreen mobile per risolvere un captcha, si adatterà perfettamente allo spazio lasciato dalla tastiera in modo che il captcha possa essere completato rapidamente e facilmente. NuCaptcha non richiede Flash o JavaScript; e la società prevede di rilasciare la versione mobile HTML5 della sua tecnologia Captcha all'inizio del quarto trimestre 2011.

NuCaptcha

Detto questo, nessuna di queste opzioni impedirebbe a un essere umano pagato di essere un interruttore CAPTCHA.

98

Snapchat ha recentemente aggiunto il riconoscimento delle immagini:
( http://venturebeat.com/2014/01/22/snapchat-find-the-ghost/ )

enter image description here


Nota:
Come la maggior parte dei captcha, anche questo è fragile.
Ma fino a quando la tua app non diventerà un obiettivo popolare, questa è un'alternativa piuttosto piacevole ;-)

32

Invece di chiedere all'utente di rispondere a una domanda o scegliere un'immagine corretta o inserire qualcosa, un'altra opzione è semplicemente eliminare qualcosa da un normale campo di testo.

enter image description here

Almeno dal punto di vista dell'implementazione, non potrebbe essere più semplice!

19
Roger Attrill

Per favore NON usare la maggior parte degli esempi nella risposta votata, escludono completamente le persone con una vasta gamma di menomazioni (il riconoscimento delle immagini è inutile se sei cieco, l'associazione metaforica è inutile se sei autistico, le domande di matematica sono inutili se tu discalculaic etc etc), e inoltre non fanno nulla per rimuovere il problema degli umani che lavorano nelle fattorie di captcha.

Fondamentalmente, se la tua verifica richiede un tipo di abilità diverso rispetto ai tuoi contenuti, stai inutilmente escludendo le persone.

Ci sono altri metodi disponibili che non hanno questo svantaggio, come askismet, Honey pot, o se hai qualcosa per cui le persone sono davvero disposte a saltare attraverso i cerchi, SMS verifica.

Se sei assolutamente intenzionato a scaricare la responsabilità di risolvere i problemi di sicurezza del tuo sito sui tuoi utenti, almeno offri loro una scelta, e per scelta non intendo le orribili versioni 'audio' viste in reCAPTCHA (reCAPTCHA sembra aver trascurato il fatto che il motivo più comune di compromissione della vista, la vecchiaia, spesso porta anche a problemi di udito). Quindi fornire più CAPTCHA e lasciare che le persone scelgano se preferirebbero rispondere a una semplice domanda, riconoscere un'immagine, ecc.

O in alternativa, come alcune aziende, è possibile semplicemente accettare i problemi di sicurezza come un problema personale, rinunciare ai tentativi di protezione da parte dell'utente e accettarne le implicazioni.

15
Ian Hamilton

Il traffico bot da un iPhone (o Android) è effettivamente un problema?

Il problema non è tanto 'da un iPhone', ma piuttosto che l'API di cui stai parlando deve essere protetta. A livello di IP sottostante non c'è molto che puoi fare per dimostrare cosa sia un dispositivo remoto, per HTTP sono in realtà solo le intestazioni o i dati del modulo, che un Bot può generare facilmente. Cioè, non mi interessa quale sia la tua UX, attaccherò direttamente la tua API.

Dal momento che stai specificamente chiedendo informazioni sulle app native, un approccio più programmatore al problema non coinvolgerebbe l'utente, ma piuttosto crittograferebbe il tuo payload utilizzando uno schema di chiave pubblica/privata prima della trasmissione. Poiché solo la tua app ha la chiave, i robot che attaccano direttamente l'API vengono contrastati. Nota, intendo davvero crittografare il tuo payload prima di inviarlo, non solo usando SSL (che non sta davvero autenticando l'applicazione, ma proteggendo i dati in volo).

Ovviamente il problema con l'incorporamento delle chiavi nelle app è che anche le app possono essere decodificate.

Nelle nostre app di sicurezza inferiore abbiamo una tabella di alcune centinaia di parole chiave e sono necessarie app (che sono spesso ibridi html) per trasmettere molte di queste con richieste di moduli http. Quali devono essere selezionati si basa sulla data corrente utilizzando un algoritmo che sia client che server conoscono. Viene quindi trasmesso usando ssl. Non perfetto, aperto al reverse engineering dell'app, ma abbastanza semplice da implementare.

Per app di sicurezza più elevate memorizziamo chiavi specifiche del dispositivo su ogni dispositivo anziché su una tabella comune e il server controlla/traccia attentamente ogni utilizzo della chiave. Naturalmente questo non è pratico per le app fornite in serie.

11
rlb

Potresti usare i campi di miele.

Forniscono un campo all'interno del modulo che è nascosto all'utente ma progettato per essere notato e compilato da ogni dato bot.

Possono essere semplici come un campo chiamato 'phone_number' nascosto con css. Il bot non elabora il CSS e vede il campo, ma l'utente no.

Funzionerebbe sia su desktop che su dispositivo mobile ed è in circolazione ormai da alcuni anni.

Qualche dettaglio in più, compresi i commenti che riguardano i problemi di accessibilità: http://haacked.com/archive/2007/09/11/honeypot-captcha.aspx/

Qui Smashing Magazine delinea questo in modo più dettagliato e tratta alcuni altri metodi Captcha:

http://coding.smashingmagazine.com/2011/03/04/in-search-of-the-perfect-captcha/

Citano anche il social login, il riconoscimento delle immagini e il riconoscimento degli amici come altri metodi più moderni, che potrebbero essere implementati bene sui dispositivi mobili, oltre a mostrare nel loro sondaggio che gli honeypot sono la prossima scelta più popolare per i loro lettori dopo il tradizionale modulo Web Captchas

PS un campo Honey Pot è in realtà anche un CAPTCHA, che sta per "Test di Turing pubblico completamente automatizzato". Conoscere questo principio può aiutare con una comprensione generale delle idee sottostanti.

http://en.wikipedia.org/wiki/CAPTCHA

8
Toni Leigh

Vaso di miele

Da quando hai citato HTML5, sono un grande fan dell'approccio honeypot. La maggior parte dei tuoi utenti non saprà nemmeno che è lì. Utilizzare tutti e quattro i seguenti campi di input che è necessario convalidare sul lato server al momento dell'invio:

  • Richiesto, nascosto da CSS
  • Deve essere nullo, nascosto da CSS
  • Richiesto, nascosto da JavaScript
  • Deve essere nullo, nascosto da JavaScript

I campi richiesti devono essere già compilati. I campi che devono essere nulli devono essere creativamente denominati "Numero di contatto" o qualcosa che un bot probabilmente presumerebbe sia un campo autentico. Ricorda solo di non usare nomi di input già in uso!

Se l'utente ha disabilitato CSS o JavaScript, è necessario spiegare cosa è necessario affinché l'invio abbia esito positivo, ad esempio "Lascia questo campo da solo" o "Lascia vuoto questo campo".

Nota: Questi devono essere nascosti ma non nascosti del tutto dal browser, altrimenti non si registreranno nemmeno. Prova accuratamente!

8
rybo111

Personalmente sono un grande sostenitore di una semplice equazione matematica per un captcha. Ad esempio, avere un fieldset alla fine del modulo:

What is 1+5?
[_____________]

Fai generare i due numeri in modo casuale. Con questo metodo ho visto una significativa riduzione degli invii di moduli spam/bot. Sembra che questi robot non abbiano la programmazione per riconoscere e risolvere queste equazioni. Forse perché sono più abituati/programmati per risolvere captcha basati su Word.

Inoltre, dal punto di vista dell'esperienza utente, queste sono le forme più semplici di captcha che ho incontrato. Semplice e non difficile. E sono facili da codificare/ridimensionare (design responsive) in HTML/CSS.

3
Fillip Peyton

Non sono uno sviluppatore, quindi non sono sicuro dei problemi di sicurezza (se ce ne sono), ma che ne dici di far rispondere l'utente tramite l'input touch? Ad esempio, potresti fare in modo che l'utente tocchi una casella tre volte o esegua un semplice scorrimento. Potresti anche far disegnare una forma all'utente: http://www.josscrowcroft.com/projects/motioncaptcha-jquery-plugin/

2
Brian

necessario?

Per il tuo primo punto, non posso credere che ci sarà molto traffico "bot" verso un URL che viene dichiarato solo all'interno del codice HTML incorporato in un'app. L'obiettivo principale degli spambots è di reindirizzare i collegamenti ad altri siti, e non ha molto senso farlo su pagine che non sono indicizzate e nessun punto su moduli che non influiscono sul contenuto.

Mentre è possibile disassemblare l'app o annusare le richieste, dovrebbe esserci uno scopo per un bot creato dalle informazioni. Se l'obiettivo fosse semplicemente inondare il tuo server di traffico, l'invio di dati CAPTCHA errati abbastanza spesso sarebbe sufficiente. Senza sapere cosa cerchi di proteggere, non posso dire se sia necessario un CAPTCHA.

Alternativa mobile-centric

Poiché l'unico scopo noto del CAPTCHA è di soddisfare una richiesta robotizzata dai redattori delle specifiche, un CAPTCHA sufficientemente infallibile sarebbe la seguente istruzione di testo:

Please hold your device in your left hand.

Come tutti sappiamo, i computer non hanno le mani e seguono sempre le istruzioni, quindi di fronte a questo probabilmente apprezzeranno l'autodistruzione o qualcosa del genere. Sta alla ragione.

(Questo è incentrato sui dispositivi mobili poiché i desktop sono in genere troppo pesanti per essere tenuti in una mano.)

Questo testo spunta davvero tutte le caselle chiave per un CAPTCHA alternativo:

  • Ritarda il completamento del modulo da parte di tutti gli umani
  • Aliena i disabili
  • Non fa differenza per i campi del modulo inviati, quindi non richiede alcuna programmazione lato server
  • È facilmente aggirabile da chiunque abbia un vero intento malizioso

proprio come altre risposte qui, come quella in cui hai una cosa scivolosa perché i computer non hanno le dita.

Una versione migliorata di questo sarebbe di posizionare la parola left in un'immagine sfocata di un font particolarmente difficile da leggere in una combinazione di colori allettante, che consentirà di ottenere:

  • Rovina il design
2
Paul Gregory

Puoi provare NoMoreCaptchas.com per autorizzare l'utente. Ha realizzato un nuovo tipo di tecnologia chiamata BioChronometrics. Tutto ciò è passivo per l'utente in base al comportamento dell'utente.

1
jmar42

Un molto approccio semplice che ha funzionato per me nella produzione era aggiungere una casella di controllo campo che era nascosto tramite la definizione dello stile (CSS) e non tramite l'attributo type = "hidden".

Se il campo è selezionato al momento dell'invio, la probabilità è alta che un robot lo abbia verificato, se non un utente ha inviato il modulo.

Questa soluzione non è sicura al 100% ma molto, molto semplice da implementare, efficace e più importante: facile da usare!

1
Spidi

Che ne dici di generare due numeri casuali tra 0 e 10 e chiedere all'utente qual è la somma di quei numeri.

0
Prasanth

In primo luogo, per proteggere l'API, aggiungi una nuova regola in entrata al firewall che consenta solo connessioni all'indirizzo IP e alla porta dell'API dall'indirizzo IP del tuo server Web/dall'intervallo IP della rete locale (se gli sviluppatori o altre macchine necessitano dell'accesso), anche se sono ospitati sullo stesso computer. Questo ovviamente significa che devi assegnare una porta unica alla tua API, ma non dovrebbe essere un problema se la tua API non è pubblica. Ciò impedirà a qualsiasi robot di effettuare richieste direttamente all'API.

In secondo luogo, aggiungi la verifica di Facebook o Google alla tua procedura di registrazione. Ciò significa che beneficerai automaticamente di tutte le nuove soluzioni Captcha che verranno implementate in futuro. Ed è ottimo per gli utenti perché non dovranno ricordare ancora un'altra password.

I captcha sono davvero doloranti e talvolta difficili da leggere e, a giudicare dai commenti sopra, sicuramente non valgono lo sforzo.

0
Tinus Neethling

Una delle opzioni può essere quella di chiedere all'utente di inserire il numero corrente-mobile, inviando un OTP al numero indicato e leggendolo automaticamente ( All'utente non dovrebbe essere permesso di inserire lo stesso manualmente ).

  1. Prova ad avere OTP. Chiedere all'utente di inserire il proprio numero di cellulare.
  2. Semplice domanda di matematica.
  3. Avere una casella che indica che sono umano
  4. Trova uno strano
  5. The Trivia Puzzle - Ad esempio: di che colore è il cielo?
0
NB4

Quando la tecnologia coinvolta nel riconoscimento vocale si è evoluta a un livello accettabile, sarebbe una vera alternativa al touch input CAPTCHA. Purtroppo, non siamo ancora del tutto lì, se leggiamo i risultati di Kapil Chalil Madathils et. al. articolo Valutazione dell'usabilità dei CAPTCHA su un dispositivo mobile con input vocale e touch . Concludono che ...

I risultati indicano che gli utenti potrebbero non essere soddisfatti del completamento dei CAPTCHA vocali, almeno quando si utilizza l'attuale software di riconoscimento vocale dell'SDK di Dragon Mobile. Per inciso, Siri - l'applicazione di riconoscimento vocale e l'assistente personale sviluppata per iPhone - non era disponibile per l'uso al momento di questo studio. I nostri risultati suggeriscono anche che Confident Touch è un CAPTCHA efficace e utilizzabile per dispositivi mobili Un ulteriore vantaggio di questo CAPTCHA è la sua versione salvaspazio che occupa meno spazio su una pagina Web e uno schermo mobile. Complessivamente, i nostri risultati supportano generalmente l'uso di CAPTCHA basati su immagini laddove ciò sia fattibile. Alcuni partecipanti al nostro studio è sembrato frustrato nel tentativo di riconoscere i caratteri distorti nel CAPTCHA di Google, e alcuni hanno persino menzionato la loro frustrazione per i CAPTCHA simili basati su testo riscontrati online, ma i punteggi sulle nostre misure di usabilità per il CAPTCHA di Google, tuttavia, erano ragionevolmente buoni.

Ma le cose si muovono rapidamente in questo mondo, e il fatto che Siri non sia stato testato porta speranza nel futuro del riconoscimento vocale CAPTCHA. Fino ad allora, CAPTCHA basato su immagini è l'opzione migliore.

0
Benny Skogberg

il traffico bot da un iPhone (o Android) è effettivamente un problema?

Sì, e comunque i tuoi server non possono dissociare il traffico da un PC e il traffico da uno smartphone se lo spammer ha fatto le cose correttamente.

In tal caso, esistono alternative migliori incentrate sui dispositivi mobili rispetto a un altro-fastidioso-CAPTCHA?

Non esiste alternativa al captcha.

Cose come il concetto che è stato collegato in un'altra risposta sono totalmente incomparabili a un captcha. Captcha è per quel tipo di soluzione come hashing password forte per offuscamento. Chiunque abbia qualche abilità di reverse engineering sarà in grado di romperlo.

Captcha (visivo o audio) si affida al potere limitato dei computer al giorno d'oggi, e quindi alle loro limitate capacità nel riconoscimento di immagini o suoni. Altre soluzioni si basano semplicemente sul fatto che lo spammer potrebbe essere troppo stupido per fare uno spambot corretto.

0
Marin