2008-10-13 20 views
6

Hay muchas ideas de CAPTCHA sin imágenes flotando. Pero ¿qué pasa con la forma antigua?Más difícil, mejor, más rápido, más fuerte ... ¿Técnicas para un CAPTCHA basado en imágenes?

¿Cuáles son los elementos de una buena imagen CAPTCHA? ¿Qué elementos visuales son difíciles para las computadoras, pero más fáciles para los humanos? ¿Qué pasa con los errores, elementos que son más fáciles para las computadoras que para los humanos? ¿Cuáles son las buenas técnicas para aumentar la velocidad de de un generador CAPTCHA?

Aquí hay un ejemplo de CAPCHA en el que he estado trabajando. Genera las funciones para dos ondas sinusoidales, luego estira un texto entre ellas. Lo establece sobre un fondo extraído de un conjunto de imágenes. Image-based CAPTCHA

¿Cómo podría mejorarse? (Específicamente, estoy usando PHP GD.) Las cosas que se me ocurren son:

  • Cambie el color del texto, posiblemente haciéndolo multicolor.
  • Agregue "arañazos" o marcas que oscurezcan levemente el texto.
  • Agregue a la distorsión para que también se vea afectada por las ondas sinusoidales en sentido horizontal.

¿Qué incluye una excelente imagen de CAPTCHA?


Editar: Yo sé que hay algunos recursos muy dignos de CAPTCHA de terceros. Estoy buscando atributos que hacen bueno. Me gustaría usar mis propios CAPTCHA, solo con el propósito de mejorarme a uno mismo. Entonces, puedes hablar sobre reCAPTCHA, pero no es exactamente lo que estoy buscando.

Además, se ha mencionado que no solo importa la imagen, sino también la experiencia , así que no dude en comentar al respecto.

Respuesta

3

Hacer letras difíciles de separar. Use letra manuscrita o agregue líneas que unan letras. Disminuya y aleatorice el espaciado entre las letras.

Agregue distorsión de onda en otros ejes también. La distorsión en un solo eje se puede analizar y revertir con relativa facilidad.

No moleste con el fondo de color en absoluto. Es súper fácil filtrar automáticamente el negro de otros colores. Tu fondo obstaculiza solo a los humanos.

No agregue arañazos u otro ruido a menos que tenga el mismo grosor que las letras. Los algoritmos de eliminación de ruido pueden eliminar fácilmente cosas que son más delgadas que las letras.

5

Haga que cada letra/número salga de un patrón, I.E. puntos no conectados. Lo que significa que la computadora no tiene manera de saber que un punto es parte de una letra que no sea el reconocimiento de patrones (que aún no tienen). Luego, las distorsiones habituales y las líneas al azar.

Cómo hacer esto es el desafío.

EDITAR: Además, puntos de bonificación para los patrones de diferentes formas, y prueba la transparencia alfa en los personajes (en los bordes o en el personaje completo), por lo que se funden con el fondo.

+0

Este es el tipo de idea que estoy buscando. – stalepretzel

0

Realmente odio CAPTCHA en los sitios, sólo me molestan, pero si quieres probar y hacer una robusta intente lo siguiente:

  • Capacidad para obtener una nueva imagen sin presentar
  • versión hablada para los discapacitados visuales
  • caracteres no uniformes

que he usado Reconocer en algunos sitios, es una solución agradable y robusto.

O si quieres ser muy funky de ello echa un vistazo a esto: http://research.microsoft.com/asirra/

0

algoritmos que tratan de romper código de imagen son patrón de comparadores que el trabajo de varias formas diferentes: escalado y sesgando los símbolos que ellos ya conocen , encontrar y trazar los bordes, y contar los agujeros interiores para ayudar. Si puede dividir la carta en pedazos, variar la calidad de la letra, o agregar líneas fuertes o "rayas" a lo largo de las letras, estas técnicas ayudarán. Sin embargo, todo esto es bastante discutible teniendo en cuenta que tenemos recaptcha para este fin y es una maravillosa aplicación de terceros para esto. Además, captcha ayudará a la seguridad de su sitio, pero no detendrá a aquellos que están realmente atraídos.

0

Tenga cuidado con las sugerencias de ReCaptcha. He enviado entradas incorrectas un par de docenas de veces, y he tenido éxito cada vez. Varias de esas veces he enviado entradas incorrectas para ambas palabras en lugar de solo la palabra más oscurecida; la tasa de éxito, como dije, ha sido del 100%.

También creo que los CAPTCHA basados ​​en imágenes son hostiles para el usuario y deben evitarse siempre que sea posible. La ventaja de las soluciones basadas en texto es que puede adaptarlas a la audiencia de su sitio, agregando un nivel de oscuridad que puede hacer tropezar a las máquinas a medida que se vuelven más inteligentes con las soluciones basadas en texto.

Por lo menos, no utilizan todo el tiempo: orange http://www.codinghorror.com/blog/images/word.png

+0

Disparé por "verde". O, tal vez, "limón"? – stalepretzel

+0

Diría que esto se debe a una implementación deficiente, la mayoría de las veces con recaptcha sucede porque el "programador" se olvidó de verificar la palabra legítima, pensó que recaptcha haría eso por ellos, y de hecho no es así. – UnkwnTech

1

¿Y si el color de las letras se desvaneció en otros colores ... por ejemplo el 5 puede empezar como amarillo en la parte superior y se desvanecen en azul o algo así. Los colores elegidos deben ser aleatorios.

Con el fondo multicolor, puede dificultar que la computadora camine donde termina el fondo y comienza el personaje ... y con suerte, no será demasiado difícil para el humano captar el patrón.

0

Me gusta la idea de KittenAuth y el proyecto Asirra de Microsoft. La idea es que, aunque el OCR eventualmente evolucionará para romper tu captcha tradicional, la capacidad de distinguir un gatito de un perro es un problema de muchas órdenes de magnitud más complejo, mientras que absolutamente trivial para los humanos.

Esta solución, aunque probablemente sea la idea de captcha más sexy, tiene la limitación de no ser fácilmente portátil para los usuarios con problemas de audición.

+0

"Identifica a todos los gatos: * Miau * Miau * Guau * Miau * Guau * Guau * Miau * Miau *" Bien, tienes razón sobre el audio ... – stalepretzel

+0

También sufre de un conjunto limitado de imágenes: Los spammers pueden simplemente recorrer las aproximadamente 100 imágenes, cateterizarlas manualmente y luego simplemente identificar la imagen, sospecho que el conjunto ya está disponible catagorised en la red. –

0

¿Qué pasa con las bandas de corte y desplazamiento para modificar la visualización y la entrada solo para ratón?

Comience tomando su texto transformado de onda senoidal, divídalo en bandas horizontales o tal vez incluso en una cuadrícula.

Eso hace que el reconocimiento óptico sea más difícil y podría permitirle evitar el tipo de juegos de fondo desagradables que hacen que algunos captchas sean difíciles para los humanos.

Para un sitio donde puede confiar en el arrastre local en el navegador, en lugar de escribir una entrada, use la mezcla para que el usuario reordene las piezas (solo en orden descuidado, no como uno de esos acertijos). O bien, si desea utilizar clics solo, el clásico sliding tile rompecabezas.

Nota, me encontré con un captcha donde tenía que identificar cuál de las N caricaturas tenía un animal que logró bloquearme.

Wellington Grey resume la carrera de AI CAPTCHA muy bien.

0

Puede agregar una matriz aleatoria de fuentes para que GD represente cada carácter con uno diferente.

1

En lugar de generar captcha, puede crear una tabla de captcha en su base de datos y usted mismo puede crear la tabla buscando en google para obtener buenas imágenes de captcha.

Así que no hay necesidad de preocuparse "¿Funcionará este método de generación?"