2011-03-15 23 views
26

Hay muchos complementos de captchas en Rails y también muchos tipos de soluciones para evitar el spam y las inundaciones. Entonces, no es solo la pregunta de Rails.rails - Elección del plugin de captcha

Vamos a ver qué tipos de plugins tenemos:

1. clásico imagen captcha (zendesk's Captcha, Simple_captcha, Validates_captcha, winton's Captcha, Raptcha).

positivo:

  • puede ser eficaz para prevenir descifrado automático (no está seguro acerca de Simple_captcha, pero parece que los captchas tanto de winton de Zendesk y no lograrlo, ya que utilizan imágenes pre-generados (en lugar de bajo demanda), por lo que nuestros posibles bots de spam se pueden aprender en esas imágenes.

negativo:

  • Requerir tabla DB (., Al menos, simple Captcha No es tan malo, pero hacen que limpiar después de su uso?).
  • Requerir RMagick o similar (no tan real para mí, ya lo tengo en mi sitio).
  • Falló el descifrado manual ($ 2/1000 imágenes como sé).
  • Molesto para los usuarios y puede perjudicar las tasas de conversión.

2. ReCaptcha (Reconocer texto, Estante-recaptcha).

positivo:

  • puede ser eficaz para prevenir descifrado automático.
  • No requiere Rmagick y tabla DB.

negativo:

  • Realizar llamadas API-a-sitio de tercera parte.
  • Falló el descifrado manual.
  • Aún más molesto que el anterior.

3. ollas de miel (negativo-código de imagen, Trap_door, Reverse_captcha, Honeypot-código de imagen, Bouncy_bots, invisible_captcha).

positivo:

  • usuario no sabe nada de presense código de imagen.
  • No requiere Rmagick y tabla DB.

negativo:

  • puede fallar descifrado automático (¿hay robots que pueden reconocer estos plugins?).
  • Falló el descifrado manual.

4. texto-base (Humanizer, Brain_buster, Gotcha).

positivo:

  • No requieren RMagick y mesa de DB (a excepción de Brain_buster).

negativo:

  • puede fallar descifrado automático.
  • Falló el descifrado manual.
  • Poco molesto (se puede localizar).

5. Otros (Acts_as_snook)

positivo:

  • usuario no sabe de presense código de imagen.
  • No requiere Rmagick y tabla DB.

negativo:

No sé si hay alguna, ya que es muy inusual. Pero creo que puede causar problemas en caso de inundación, ya que puede requerir la moderación de la publicación en algunas ocasiones.

6. soluciones tipo Akismet (no sé acerca de su eficacia).

positivo:

  • usuario no sabe nada de presense código de imagen.
  • No requiere Rmagick y tabla DB.

negativo:

  • Realizar llamadas API-a-sitio de tercera parte.
  • Entregar detalles del usuario al sitio de terceros (muy, muy mal).

También debería decir algunas palabras sobre mi sitio.Los usuarios pueden ver el formulario protegido solo después de una solicitud ajax (después de poner algo en el carro, por ejemplo). ¿Los robots modernos tienen la capacidad de hacer solicitudes ajax y almacenar cookies?

+0

He una aplicación Rails alojado en Heroku, me Me gustaría usar captcha para el formulario de registro de usuario. ¿Qué solución viable en la producción? No puedo ejecutar RMagick en Heroku ¿verdad? – Myna

+0

Utilicé una lógica simple para filtrar los formularios de los raíles del correo no deseado y está funcionando muy bien en varias aplicaciones de producción. Es como un honeypot, pero un poco diferente :) Recientemente cambié este complemento a gem [protected_form] (https://github.com/KELiON/protected_form), compruébalo. Sería genial tener comentarios. –

Respuesta

6

Las inundaciones son un problema diferente del spam. Definitivamente debe construir la lógica en torno a la limitación de velocidad en su aplicación, puede hacerlo mediante validación para verificar que el usuario no haya realizado, por ejemplo, más de 2 pedidos en los últimos 15 minutos.

En lo que respecta a los captchas, cualquiera de los complementos que seleccione serán muy buenos. No pensaría en tener que instalar RMagick como positivo o negativo, realmente no es tan difícil trabajar. Si fuera yo quien elige, mi primer instinto sería ir con recaptcha, es lo menos molesto de todos.

El spam es otro problema, a menudo es introducido por usuarios humanos que pueden eludir su captcha. Akismet es ideal para atrapar spam, definitivamente échale un vistazo, puedes usarlo junto con algo como recaptcha.

Finalmente, los bots modernos son muy sofisticados. Mucho más sofisticado que cualquiera de nosotros probablemente espere. Pueden automatizar completamente los navegadores, usar OCR para leer el texto de captcha y generar contenido fraudulento que evitará incluso los filtros más sofisticados. Dicho esto, no se trata de "detener todos los spam/bots", se trata de hacer que la barrera de entrada sea lo suficientemente alta como para que no valga la pena para el usuario ocasional.

+0

Bueno, también voy a utilizar uno de esos complementos para el registro de los usuarios (sin notificaciones por correo electrónico). Así que solo puedo mirar la IP del usuario para evitar inundaciones. Pero como se ve hoy en día, hay muchas botnets haciendo eso. Entonces, el bloqueo de IP es una mala idea, ¿no? – sunki

+0

Los IP de los usuarios cambian, o pueden tener una computadora en el hogar y en el trabajo. – jonnii

+0

Me refiero a bloquear el IP en lugar de guardarlo para el usuario en particular. Las IP pueden bloquearse durante un tiempo, 1 hora por ejemplo. – sunki

5

Buen análisis de los complementos existentes.

Los bots modernos son bastante sofisticados, y a sus desarrolladores se les paga mucho, por lo que siempre están tratando de evitar la última defensa. Por esa razón, creo que es bueno seguir con una opción que se mantiene y se trabaja activamente, como ReCaptcha. También creo que los usuarios entienden la interfaz y se sienten seguros sabiendo que están tomando medidas para proteger sus datos.

Tuve que examinar todas las opciones de captcha de rieles para un proyecto, y escribí una aplicación de muestra para que mi cliente la probara y probara. simple-captcha-demo.heroku.com

Todos fueron muy fáciles de usar y configurar, y me gusta usar heroku como banco de pruebas para configurar algo rápidamente, y dejar que un cliente lo pruebe. También escribí un poco de mi experiencia y trampas en mi blog RailsPerformance.com

Puede haber nuevos plugins, siempre es bueno ver lo que la tendencia está en www.ruby-toolbox.com

+0

¡Buena página de demostración! El enlace reCaptcha en la parte superior está roto, en caso de que te importe. – Clay

+0

@clay Gracias. Arreglé ese enlace roto, y lo hice para que no se rompa nuevamente. –