sábado, marzo 06, 2010

Funcionamiento de los Robots

Andamos liados en la escritura de un artículo sobre la protección de los sitios de la administración pública frente a los robots de los buscadores de Internet y a mí me ha tocado jugar un poco con el funcionamiento de los ficheros robots.txt para establecer algunas buenas prácticas.

Para ello he estado mirando algunas cosas curiosas que me han llamado la atención sobre ellos y aquí os las dejo:

1) To Allow or To Disallow, that´s the question

La primera buena idea que me vino a la cabeza para crear un fichero robots.txt fue la de crear un fichero que prohibiera todas las rutas y que luego, mediante una lista blanca, permitiera sólo las que contenían información estrictamente pública pero… al mirar el estándar de 1994 del fichero robots.txt descubro que el comando Allow no está permitido. ¿Comorl?

Así que, cuando paso el validador del fichero robots.txt de http://www.google.com/robots.txt me sale que el fichero tiene inconsistencias.


Validador de robots.txt de Google.com

Lógicamente, esto me deja bastante descolocado, así que hay que informarse más.

2) Implementaciones de Allow

Tras mirar en varios sitios, la wikipedia ofrece una explicación al funcionamiento de Allow bastante clara. Parece ser que algunos robots implementan Allow, como Google y Bing, pero lo evalúan de forma diferente.

- Google evalúa primero todos los Allow y luego, una vez indexados, se encarga de todo menos lo marcada por Disallow.

- Bing, por el contrario, aplica la directiva más específica, es decir:

o Disallow: /casa & Allow:/casa/puerta -> El contenido de casa no se indexa peró sí el de puerta se indexa
o Allow:/casa & Disallow:/casa/puerta -> El contenido de casa se indexa, pero no el de puerta.

Sin embargo, como el estándar es que se aplica el primer match, es decir, la primera regla de coincidencia como en los firewalls, pueden existir algunos robots que se encuentren: Allow: / & Disallow:/casa. Y como la primera coincidencia coincide, pues será la que vale todo se indexa.

Si a esto le añadimos que Allow no está en el estándar nos podemos encontrar con cuatro comportamientos diferentes para cuatro tipos de robots, luego.. ¿Estás seguro de que en algún buscador no están tus datos?

3) User-Agent:* & User-Agent: Google

Con el atributo de User-Agent sucede lo mismo. Esta sección se utiliza para decidir cuáles deben ser las reglas de configuración para cada uno de los robots, pero… ¿cómo los evalúan?

Pues sí, pueden acogerse al artículo 33, es decir, que pueden aplicar la especifica – la que le afecte a él – , la genérica – el * -, la primera que se encuentren en el archivo o las dos. Hay cientos de crawlers, ¿te sabes su comportamiento? Si Bing y Google tienen diferente comportamiento… ¿cómo crees que lo harán los demás?

Tras ver esto, creo que cada vez en auditoría de seguridad es más necesario realizar el "Google/BING" Hacking desde tantos buscadores como sea posible.

Mas info:

El uso que hace Bing con el robots.txt está espcificado en la siguiente URL: Robots Exclusion Protocol donde da información hasta de las direcciones IP que utiliza.

El uso de Google del fichero Robots.txt está explicado en las herramientas de ayuda del webmaster.

Saludos Malignos!

7 comentarios:

  1. Son cosas mías o siempre gana Microsoft? lol

    ResponderEliminar
  2. "Si a esto le añadimos que Disallow no está en el estándar"
    Quizás quiso decir: Allow

    ResponderEliminar
  3. Buena nota, Maligno. La verdad es un tema interesante para investigar, pero me surgen algunas dudas:

    Dado que no es posible saber cuantos robots hay, nunca podrá asegurar completamente nuestra información de los sites, salvo que se estandarice su comportamiento (el de los robots).

    Dado que no hay una regulación que te indique cómo se debe comportar un robot (quizá existe y no la conozco), nunca se podrá estandarizar.

    Como tantas cosas en nuestro mundillo (informática y tecnología), estamos en una paradoja / encrucijada.

    Suerte con el artículo!

    ResponderEliminar
  4. Como ya me contaron en el hosting, tiempo ha, con respecto a esta configuración. Era algo así como:

    "Al menos, los buscadores legales, les harán caso".

    Una vez hemso descartado los buscadores del lado oscuro, y nos metemos a los buenos... Nos podemos remetir a la pregunta del post.

    ResponderEliminar
  5. Me parece que los archivos robots.txt aporta demasiada información sobre los directorios "sensibles" de una aplicacion web, si no quieren que los buscadores accedan a ellos, tampoco van a querer que una persona mal intencionada lo haga.

    personalmente pienso que es mejor dejar que los robots rastreen todo el sitio, pero proteger el acceso a las carpetas especificas con algunas reglas en el .htaccess

    impidiendo la navegación por directorios
    Options All -Indexes

    y coloca contraseña a las carpetas con información delicada
    http://dirprotect.com/

    ResponderEliminar
  6. @dirprotec, sí, pero es un poco más delicado, pq tal vez la información pública y privada esté mezclada (como una aplicación que casca que da documentos públicos) o símplemente por que quieres evitar Hijacking SEO, o por defensa en profundidad.

    Gracias por tu aporte, a ver si te gusta lo que hemos escrito para el congreso.

    Saludos!

    ResponderEliminar
  7. Lo del primer match me ha llegado al alma.
    Buen ejemplo de potencia sacrificando funcionalidad completa.

    ResponderEliminar