2010-11-05 16 views
10

Pasa el tiempo, pero todavía no hay una solución perfecta ... ¿Ves si alguien tiene una idea brillante para diferenciar un bot de una página web cargada de humanos? El estado de la técnica todavía está cargando una larga lista de conocidos SE bots y analizar AGENTE USUARIO?¿La mejor manera de detectar bot desde el agente de usuario?

¡Las pruebas deben realizarse antes de que se cargue la página! ¡No hay gifs o captchas!

+0

posible duplicado de [Tell bots aparte de los visitantes humanos para las estadísticas?] (Http://stackoverflow.com/questions/1717049/tell-bots-apart-f-human-visitors-for-stats) –

+0

Pekka, sí ¡es muy similar! Sin embargo, no había una solución aceptada allí ... ¿quién sabe si tal vez alguien puede iluminarnos esta vez? :-) – Riccardo

Respuesta

1

El agente de usuario lo establece el cliente y, por lo tanto, se puede manipular. Por lo tanto, un bot malicioso no le enviará un agente de usuario I-Am-MalBot, sino que se llama a sí mismo como una versión de IE. Por lo tanto, utilizar el agente de usuario para evitar el correo no deseado o algo similar no tiene sentido.

Entonces, ¿qué quieres hacer? ¿Cuál es tu objetivo final? Si supiéramos eso, podríamos ser una mejor ayuda.

+0

Necesito recopilar estadísticas de usuario, filtrar agentes de usuario no humanos, deseo hacerlo solo, ¡sin herramientas como Google Analytics, por favor! – Riccardo

+0

Aunque este es un artículo útil en sí mismo, no califica como _respuesta_; Hubiera sido más adecuado como un comentario, en mi opinión. –

+0

@Core: No, esto no es un comentario. Respondo, que él no puede resolver el problema de esta manera. Al menos no hay ninguna razón para menospreciar. – NikiC

3

Sin un reto (como CAPTCHA de), estas a disparar en la oscuridad. El agente de usuario se puede establecer trivialmente en cualquier cadena arbitraria.

4

Si es posible, me gustaría probar un enfoque honeypot a éste. Será invisible para la mayoría de los usuarios y desalienta a muchos bots, aunque ninguno está decidido a trabajar, ya que podrían implementar un código especial para su sitio que acaba de omitir el campo honeypot una vez que descubran su juego. Pero los dueños del robot le prestarían mucha más atención de la que probablemente valga la pena para la mayoría. Habrá toneladas de otros sitios que aceptan spam sin ningún esfuerzo adicional de su parte.

Una cosa que se omite de vez en cuando es que es importante dejar que el robot piense que todo salió bien, no hay mensajes de error o páginas de negación, simplemente vuelva a cargar la página como lo haría con cualquier otro usuario, excepto omisión agregando el contenido de bots al sitio. De esta forma, no hay señales de alerta que puedan detectarse en los registros de bots, y el propietario actuará de acuerdo con esto, se necesitará mucho más escrutinio para descubrir que está denegando los comentarios.

+1

Los Honeypots son un enfoque bastante bueno para tratar arañas web "casuales" automáticas, pero por supuesto, no pueden ayudar con ningún tipo de actividad de bot dirigido. – Gareth

+0

Sí, no creo que aquí termine la lucha contra bots maliciosos, pero este es un buen primer paso, y puede mantener su sitio libre de spam durante bastante tiempo, hasta que se vuelva realmente popular, y los bots comiencen a atacarlo específicamente, entonces tienes que intensificar tu juego un poco. –

+0

Bueno para formularios .... – Riccardo

1

Los creadores de SO deben saber qué están utilizando Captcha con el fin de evitar que los robots de edición de contenido. La razón es que en realidad no hay forma de estar seguros de que un cliente no es un bot. Y creo que nunca lo habrá.

1

Yo mismo estoy codificando rastreadores web para diferentes propósitos. Y uso un navegador del navegador UserAgent.

Por lo que yo sé, no se puede distinguir los robots de los humanos si un bot está usando un agente de usuario de fiar. Me gusta:

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.11 (KHTML, like Gecko) Chrome/9.0.570.1 Safari/534.11 

Lo único que se me ocurre es JavaScript. La mayoría de los bots web personalizados (como los que codigo) no pueden ejecutar códigos javascript porque es un trabajo del navegador. Pero si el bot está vinculado o usando un navegador web (como Firefox), no será detectado.

+0

Web bots personalizados sin duda * podrían * ejecutar javascript, incluso si no se están ejecutando dentro de un navegador gráfico – Gareth

+0

@Gareth Acepto, edité mi respuesta. En realidad, me estoy refiriendo a raspadores simples que no necesitan javascript. Creo que la mayoría de ellos no. – Ruel

1

Lo que los otros han dicho es verdad hasta cierto punto ... si un bot-fabricante quiere que pienses un bot es un usuario real, no hay manera de evitar eso. Pero muchos de los motores de búsqueda populares sí se identifican. Hay una lista aquí (http://www.jafsoft.com/searchengines/webbots.html) entre otros lugares. Puede cargarlos en una base de datos y buscarlos allí. Sin embargo, parece recordar que está en contra del acuerdo de usuario de Google crear páginas personalizadas para sus bots.

0

estoy seguro de que voy a tomar un votedown en esto, pero tenía que publicarlo: Constructive

En cualquier caso, los captchas son la mejor manera en este momento para proteger de los robots, a falta de aprobar todo el contenido enviado por el usuario.

- Editar -

acabo notó su P. S., y no estoy seguro de todos modos para diagnosticar un bot sin interactuar con ella. Su mejor opción en este caso podría ser atrapar los bots tan pronto como sea posible e implementar una restricción de IP de 1 mes, después de lo cual el BOT debería abandonar si constantemente le devuelve HTTP 404. Los Bot's a menudo se ejecutan desde un servidor y no cambian su IP, por lo que esto debería funcionar como un enfoque mediocre.

+0

(IP) Prueba de concepto: no existe una implementación pública de la cadena de proxy para PHP/Perl/Python. (Sin embargo, puede haber un solo proxy, pero generalmente los bots no son tan paranoicos) –

0

Sugiero usar Akismet, un plugin de prevención de spam, en lugar de cualquier tipo de truco de Captcha o CSS porque es muy excelente para atrapar spam sin arruinar la experiencia del usuario.

0

Los robots honestos, como los motores de búsqueda, generalmente accederán a su robots.txt. De eso puedes aprender su cadena de caracteres de uso y agregarla a tu lista de bots.

Claramente, esto no ayuda con los bots maliciosos que se hacen pasar por humanos, pero para algunas aplicaciones esto podría ser suficiente si lo único que quieres es filtrar bots del motor de búsqueda de tus registros (por ejemplo).

Cuestiones relacionadas