¿Cómo puedo identificar que el robot solicita mi página, pero no el navegador del usuario?

10

¿Cómo puedo detectar que mi página es solicitada por un robot, pero no por el navegador del usuario? Soy consciente de los trucos básicos:

  1. Esté atento a los encabezados o urls incorrectos. Por ejemplo, urls con hash o encabezado con url completo - GET www.yoursite.com/test
  2. Detectar que varias direcciones no relacionadas fueron solicitadas directamente por algún IP (no lo suficientemente bueno)
  3. Esté atento a los encabezados que faltan
  4. Esté atento a los agentes de usuario obsoletos

¿Hay otras formas de detectar robots?

ACTUALIZACIÓN : algunos buenos robots se identifican en el encabezado Usuario-Agente:

User-Agent: Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
    
pregunta Paul Podlipensky 11.07.2012 - 21:59
fuente

4 respuestas

5

La detección de Javascript parece ser la forma más común de detectar un bot, ya que se genera un token aleatorio utilizando Javascript y se envía junto con las solicitudes.

Me gusta la idea de tener una página 'honeypot' en tu aplicación web. Esta página estaría vinculada al uso de un enlace oculto, que ningún usuario final vería jamás. De esta manera, si alguna vez se llega a esta página de honeypot (si un bot escanea la fuente HTML en busca de enlaces), puede estar bastante seguro de que se trata de un bot u otro escáner malicioso y bloquear temporalmente esa dirección IP.

También hay herramientas (como weblabyrinth ) que apuntan a atrapar bots en un bucle generando dinámicamente enlaces falsos para el bot a seguir.

    
respondido por el xpn-security 12.07.2012 - 00:47
fuente
5

Algunas de las funciones que se utilizan en la minería de registros web para identificar si el robot realiza una solicitud:

  • número de clic: número de solicitudes http en una sesión
  • proporción de HTML a imagen: los robots generalmente ignoran las imágenes
  • porcentaje de solicitudes de pdf / ps: los robots solicitarán todas, mientras que los humanos solicitan de forma selectiva unas pocas
  • porcentaje de respuestas de error 4xx: los robots tendrán esta métrica más alta
  • porcentaje de solicitudes HTTP HEAD: para reducir la cantidad de datos de un sitio, los robots usan solicitudes HEAD
  • porcentaje de solicitudes con remitentes no asignados
  • solicitud de archivo Robots.txt
  • desviación estándar de la profundidad de la página solicitada: alta para robots
  • porcentaje de solicitudes HTTP consecutivas consecutivas: mayor para las sesiones humanas (el navegador realiza solicitudes de imágenes / guiones contenidas en la página en nombre del usuario)

Estos se toman de "Evaluación de características para la detección de rastreadores web con técnicas de extracción de datos" enlace

    
respondido por el naresh 13.11.2012 - 03:40
fuente
3

En general, los robots no ejecutan JavaScript (probablemente un 99% de los casos), sin embargo, tenga en cuenta que algunos robots utilizan WebKit, que ejecuta el JS y muestra la página completa.

Puede verificar las entradas en el archivo de registro. Es probable que sea un robot si:

  • solicita la página HTML pero no hay imágenes
  • primero solicita un robots.txt
  • es de la red google etc
  • puedes ver que está rastreando y no navegando
respondido por el Andrew Smith 11.07.2012 - 22:40
fuente
2

Un consejo realmente sólido hasta ahora.

Solo quería decir que los desafíos de JS no deben usarse como indicadores únicos, ya que algunos bots (es decir, algunos bots de Google pero también algunos malos / disfrazados) ejecutarán JS y, por otro lado, algunos usuarios no activarán JS para razones de seguridad (raro pero sucede).

Lo mejor que puedes hacer es realizar una interrogación cruzada del bot utilizando las siguientes reglas:

  1. Método: "POST" es sospechoso
  2. Orden de encabezado: si es anormal, entonces es sospechoso (pero esto puede ser solo una cuestión de poder)
  3. robots.txt: si va primero, es muy sospechoso
  4. Rango de IP: si se trata de una ubicación geográfica "inusual", entonces merece otro aspecto
  5. Tasa de solicitud: la tasa muy alta es muy sospechosa
  6. Activos: si no descarga archivos (imágenes, css, js y etc.), entonces es sospechoso
  7. Desafío JS y Cookie: si no puede pasarlo, entonces es sospechoso

Establecer un puntaje para cada prueba (no dé todos los mismos "valores" ya que algunos son más importantes) y la combinación de los datos proporcionará los mejores resultados.

@ xpn-security: fue genial aprender sobre el weblabyrinth. Gracias.

    
respondido por el Igal Zeifman 18.07.2012 - 17:13
fuente

Lea otras preguntas en las etiquetas