Estaba pensando en cómo recaptcha se está volviendo más difícil cuando pensé en otra posible solución. Las imágenes no durarán para siempre, por lo que necesitaremos algo más algún día, como la lógica humana o la emoción. Google y otros están tratando de agrupar imágenes por categoría (encontrar la imagen que no pertenece) pero eso requiere una gran cantidad de imágenes y no funciona para los ciegos.
De todos modos, ¿qué pasaría si se reuniera una colección masiva de texto (libros de dominio público de cada idioma) y se le mostrara una oración al usuario con 1 (o 2) palabras que fueran un cuadro de selección? Solo las computadoras que sabían la gramática correcta del inglés / español / alemán podrían saber cuál de las palabras pertenecía a la oración.
¿Habría algún problema con este enfoque? Supongo que sería bastante fácil para cualquiera que conozca el idioma en que se muestra la sentencia para descubrir la respuesta más fácilmente que tratar de leer el texto reCAPTCHA. Además, almacenar una cantidad increíble de oraciones solo tomaría un par de gigabytes de espacio y no tomaría nada cerca del tiempo de CPU creando imágenes / tomas de audio. En otras palabras, cualquiera podría alojar su propio sistema de captcha con un impacto mínimo en el rendimiento del sistema.
¿Hay algún problema con este enfoque? Más específicamente, estoy buscando el principal problema con este enfoque.
Respuestas:
Primero, te doy el Watson de IBM . Creo que la informática ha superado con creces el simple relleno de los problemas en blanco del lenguaje.
A continuación, le doy todos los correctores ortográficos / gramaticales implementados en el software. Determinar si una palabra es gramaticalmente correcta en una oración se resuelve en> 90% de los casos. Incluso me sacaré el cuello y diré que son mejores en alfabetización que la mayoría de los humanos que conozco.
No creo que su idea CAPTCHA funcione tan bien como espera ...
fuente
Veamos, ¿cuánto tiempo llevaría seleccionar siempre la primera opción y, finalmente, hacerlo bien?
fuente
Si está sacando oraciones de libros de dominio público, un bot no necesitaría saber nada sobre gramática. Simplemente necesitaría indexar esas mismas oraciones y hacer una búsqueda para encontrar qué palabra usa la oración real. Y eso supone que usted resuelve razonablemente el problema que Jeff O sugirió donde puede eludir el problema adivinando la primera opción cada vez.
Además, muchas de las oraciones en el universo de los libros de dominio público serían inapropiadas para este tipo de esfuerzo. Muchos serían ambiguos sin contexto. Muchos contendrían contenido objetable (imagine presentar una oración aleatoria de Huckleberry Finn). Por lo tanto, habría que invertir un esfuerzo decente para llegar a un conjunto de oraciones que no sean ofensivas y no sean ambiguas. Si acepta que algunas oraciones serán ambiguas, perderá gran parte de la capacidad de castigar a los robots por adivinar incorrectamente.
fuente
Un problema más desafiante para los bots sería eliminar una palabra de una oración, luego presentar una elección entre cuatro palabras diferentes de la misma parte del discurso. (Por ejemplo, eliminar un sustantivo; ¿cuál de estos cuatro sustantivos encaja mejor aquí?)
Los algoritmos de etiquetado y análisis no son perfectos, pero los enfoques basados en corpus han llegado al punto en el que puede entrenar un analizador lo suficientemente bien como para ayudarlo a superar las probabilidades en un CAPTCHA con software básico o de código abierto. (Cuando está enviando correo no deseado en volumen, está bien si algunos mensajes no llegan, siempre que lo hagan para aumentar su tasa de éxito general).
Sin embargo, las computadoras aún no son tan buenas con la semántica.
fuente
La mayor parte del spam que recibo en estos días en realidad no es generado por bots. Recibo mucho spam proveniente de países del tercer mundo donde se contrata a personas por unos centavos por hora para publicar mensajes en foros y blogs, etc.
Ningún sistema que diferencie entre humanos y computadoras detendrá esto.
Por esa razón, he eliminado totalmente CAPTCHA en mis sitios. En cambio, tengo una solución bastante simple basada en JavaScript (básicamente, Javascript ejecutándose en el cliente reorganiza los campos para que si publica con Javascript desactivado, falle). Esto detiene el 95% del spam bot, pero obviamente no tiene ningún efecto sobre el spam humano, pero tampoco lo haría un CAPTCHA.
fuente
La respuesta podría ser subjetiva (en realidad no es subjetiva, pero la falta de conceptos lingüísticos abarca todas las sociedades) y difícil para quienes no hablan el idioma de forma nativa.
Si se presenta una lista finita de reglas gramaticales (que tiene cada idioma), entonces simplemente se convierte en un algoritmo; accesible ahora por cualquier máquina dispuesta a implementar el algoritmo.
fuente
Pero ignorando estas serias trampas, está el problema de los idiomas.
Los idiomas de aglutinación como el húngaro o el finlandés se prestan fácilmente a este tipo de captchas, porque las palabras pueden tener muchos sufijos y cada uno tiene un propósito diferente en la oración (por ejemplo, el mismo nombre tiene un sufijo diferente cuando se usa como un objeto o un sujeto). las reglas solo son complicadas para los humanos, una máquina encontrará la correcta en unos pocos intentos.
Los idiomas de aislamiento (el inglés es un ejemplo aproximado, el chino mandarín es mucho más limpio) son aún peores, ya que la gramática está dictada principalmente por la posición en la oración y no por la forma de la palabra.
Los idiomas fusionales como el ruso o el griego probablemente plantean otro conjunto de problemas, etc.
En resumen, los acertijos lingüísticos que se traducen bien y son difíciles de adivinar al azar son notoriamente difíciles de encontrar. Probablemente sea mucho más fácil concentrarse en la semántica que en la sintaxis. Por ejemplo, "Continúa la siguiente secuencia: jueves, miércoles, martes ..." o "hornea, fríe, asa ..." y así sucesivamente.
fuente
La idea habitual detrás de un captcha es que debería detener a los bots casi todo el tiempo. Una opción múltiple entre N respuestas detiene el bot solo (N - 1) / N del tiempo, por lo que el bot pasará en un promedio de N intentos.
Puede implementar tiempos de espera para respuestas incorrectas de captcha, pero no puede ser demasiado estricto al respecto sin molestar seriamente a las personas que no hablan bien inglés (o lo que sea) o tienen problemas con cuadros seleccionados (manos temblorosas, ratones malos, otros desventajas). Además, los tiempos de espera no detendrán una botnet, ya que las conjeturas pueden provenir de diferentes IP.
Además, ¿cómo se asegura de que solo haya una respuesta legítima? Una oración seleccionada al azar del Proyecto Gutenberg puede tener sentido con varios sustantivos seleccionados al azar, pero solo uno es la respuesta correcta.
fuente
Todo lo que estás haciendo es hacer que sea más difícil para los humanos usar tu sitio, mientras que para los bots no estás agregando ningún obstáculo.
En lo que debería centrarse es en crear un mecanismo que detecte automáticamente si algo que se publica es correo no deseado, y bloquea la publicación si lo es (diferiéndolo a la moderación humana, por ejemplo, y enviando un mensaje al afiche hasta ese punto).
Los CAPTCHA han llegado al punto en que son tan molestos que tiendo a evitar cada vez más sitios que los usan, y muchos conmigo. Esto especialmente porque son ampliamente conocidos por no tener ningún efecto sobre los robots de spam.
fuente