¿Cómo detectar bots haciendo clic en un enlace?

2

Tengo un servicio de acortamiento de url. Quiero entregar solo estadísticas legítimas a mis clientes. Existen posibles escenarios en los que un usuario en particular escribe un script para abrir automáticamente la URL abreviada, lo que hace que las estadísticas se vean mal. ¿Cuáles son los enfoques que se pueden seguir para detectar si un clic es legítimo o no? El enfoque muy básico en el que puedo pensar es monitorear la dirección IP del usuario y bloquearlo si el número de solicitudes excede un umbral.

    
pregunta Ishan Jain 07.02.2014 - 08:57
fuente

4 respuestas

5

Hay varios métodos potenciales que puedes usar para diferenciar a los bots de los humanos, pero ninguno de ellos es probable que sea del 100%

Obviamente, como dices, la limitación de velocidad atrapa a los robots realmente estúpidos que no saben hacer clic a velocidad humana. Podría decir un clic por IP, pero eso desinflará artificialmente sus estadísticas en el caso de personas detrás de un proxy (que se volverá más común a medida que se agoten las direcciones IPv4)

El bloqueo de IP no es muy útil en los días de la computación en la nube, es bastante fácil para un atacante obtener una IP diferente o un rango de IP para trabajar si están lo suficientemente dedicados.

Como dice @fas, puedes probar el agente de usuario, pero de nuevo eso solo detectará a los robots que no saben cómo configurar un agente de usuario, lo que no es realmente demasiado difícil de hacer.

Podría introducir alguna tarea "difícil para la computadora" en el proceso de hacer clic, pero eso haría que su sitio sea bastante hostil (por ejemplo, CAPTCHA). Nuevamente no es 100%, pero es más difícil de superar trivialmente.

En última instancia, sugeriría que depende de qué tan motivados y bien financiados estén tus atacantes. Si están razonablemente motivados y tienen algo de efectivo, solo pueden contratar a personas reales para que hagan clic en el enlace (por ejemplo, a través de amazon Mechanical Turk), momento en el que probablemente sea difícil diferenciar el tráfico legítimo del tráfico no legítimo. / p>

Suponiendo que sus atacantes sean más informales, yo diría que combinar el Agente de usuario y la dirección IP de origen. Los Agentes de usuario pueden ser relativamente identificables (más información en el panopticlick site ). Entonces, si limita cada agente de usuario a un clic por dirección IP de origen, puede obtener una aproximación decente, contra un atacante relativamente poco sofisticado.

    
respondido por el Rоry McCune 07.02.2014 - 09:59
fuente
1

La respuesta de Owen anterior me recordó algo muy poco tecnológico pero simple y efectivo que he intentado. Para tener una idea de qué tan mal están los bots sesgando mis estadísticas de clics, justo al lado del gráfico del banner de mi afiliado, tengo un gif transparente de un solo píxel que también está envuelto en una etiqueta href. Creo que es seguro asumir que solo los bots harían clic en ese enlace invisible, por lo que solo comparo el número de clics para el banner de afiliado frente al enlace transparente de 1 píxel.

    
respondido por el Joeinfo 25.10.2014 - 15:26
fuente
0

Intente buscar agentes de usuario y remitentes válidos. Los agentes de usuario siempre pueden ser falsificados, pero esa es su mejor apuesta. Sin embargo, incluso si un bot está haciendo clic, consideraría ese tráfico.

    
respondido por el d1str0 07.02.2014 - 08:59
fuente
0

Un pequeño método que acabo de pensar en esto (y probablemente se haya hecho antes):

Cuando se hace clic con el mouse en un enlace, se genera un evento, que incluso tiene una propiedad clientX y otro clientY que devuelven la posición del dispositivo señalador cuando se hizo clic en el enlace.

Si se hace clic en un enlace utilizando un desencadenante ECMAScript del evento click, las propiedades clientX y clientY están no establecidas .

Si interrumpes un evento de clic y verificas si clientX o clientY están configurados, puedes comenzar a detectar eventos disparados remotamente. Por supuesto, esto tiene la desventaja de que efectivamente deshabilita los eventos de clics desencadenados que su aplicación ya puede usar legítimamente, y para resolver que puede necesitar crear algún tipo de método para distinguir entre clics "válidos" e "inválidos", una especie de haga clic en el motor de autenticación.

Esta es una idea muy básica, y no la he perfeccionado ni probado bien, pero tal vez sea de utilidad para usted. He creado una demostración preliminar de CodePen que destaca la funcionalidad, con una versión simple del código que podría ejecutar.

No lo he comprobado en un dispositivo táctil, y es posible que los eventos táctiles tampoco devuelvan estas propiedades, lo que significa que es posible que necesite encontrar una propiedad alternativa para verificar los dispositivos táctiles, si esto funcionara. efectivamente.

En términos de pensamiento de cielo azul, no está tan mal, y puede ayudarte a formar un enfoque más convincente para evitar el clickjacking.

enlace

    
respondido por el Owen 07.02.2014 - 13:41
fuente

Lea otras preguntas en las etiquetas