¿Qué opciones existen para detectar rastreadores web que no quieren ser detectados?
(Sé que enumerar las técnicas de detección permitirá que el programador inteligente de rastreadores sigilosos cree una araña mejor, pero no creo que podamos bloquear los rastreadores inteligentes de todos modos, solo los que cometen errores).
No estoy hablando de rastreadores agradables como googlebot y Yahoo! Sorber. Considero que un bot es bueno si:
- se identifica a sí mismo como un bot en la cadena del agente de usuario
- lee robots.txt (y lo obedece)
Estoy hablando de los rastreadores malos , que se esconden detrás de agentes de usuario comunes, usan mi ancho de banda y nunca me dan nada a cambio.
Hay algunas trampillas que se pueden construir lista actualizada (gracias Chris, gs) :
- Agregar un directorio que solo aparece (marcado como no permitido) en el archivo robots.txt,
- Agregar enlaces invisibles (posiblemente marcados como rel = "nofollow"?),
- style = "display: none;" en el enlace o contenedor principal
- colocado debajo de otro elemento con mayor índice Z
- detectar quién no entiende las mayúsculas,
- detecta quién intenta publicar respuestas pero siempre falla el Captcha.
- detectar solicitudes GET a recursos solo POST
- detectar intervalo entre solicitudes
- detectar el orden de las páginas solicitadas
- detectar quién solicita (constantemente) recursos https a través de http
- detectar quién no solicita el archivo de imagen (esto en combinación con una lista de agentes de usuario de navegadores con capacidad de imagen conocidos funciona sorprendentemente bien)
Algunas trampas serían activadas por bots tanto "buenos" como "malos". podría combinarlos con una lista blanca:
- Dispara una trampa
robots.txt
¿ Solicita ?- No dispara otra trampa porque obedeció
robots.txt
Otra cosa importante aquí es:
Considere que las personas ciegas usan lectores de pantalla: brinde a las personas una forma de comunicarse con usted o resuelva un Captcha (sin imagen) para continuar navegando.
¿Qué métodos existen para detectar automáticamente los rastreadores web que intentan enmascararse como visitantes humanos normales?
Actualización
La pregunta no es: ¿Cómo puedo detectar todos los rastreadores? La pregunta es: ¿Cómo puedo maximizar las posibilidades de detectar un rastreador?
Algunas arañas son realmente buenas, y de hecho analizan y entienden html, xhtml, css javascript, script VB, etc.
No me hago ilusiones: no podré vencerlas.
Sin embargo, se sorprenderá de lo estúpidos que son algunos rastreadores. Con el mejor ejemplo de estupidez (en mi opinión) es: convertir todas las URL en minúsculas antes de solicitarlas.
Y luego hay un montón de rastreadores que simplemente 'no son lo suficientemente buenos' para evitar las diversas trampillas.