Los robots de los buscadores y la seguridad por oscuridad
Robots, bots, spiders, arañas, pueden llamarlos como quieran, pero lo importante es saber que se trata del software que usan los buscadores y otros sitios para recorrer la web e indexar contenido. Por ende, son a quienes les debemos “decir” que es lo que queremos, o no, indexen de nuestro sitio, y para eso existe el archivo robots.txt.
Imagen robada sin escrúpulos de Wikipedia. shhh, botones.
¿Qué hace el archivo robots.txt?
El archivo robots.txt debe ser accesible públicamente y estar ubicado en directorio raíz del host, ej: cibergeek.com/robots.txt. Debido a que es su naturaleza publica muchas veces son indexados por Google y publicados en los resultados.
Éste archivo contiene directivas para indicarle a los bots que es lo que pueden, y no pueden, indexar. Y si bien según el W3C en el archivo robots.txt solo sé debe indicar que es lo que NO se deben indexar mediante la directiva “Disallow”, Google admite la directiva “Allow”, que justamente tiene permite indicar que es lo que se puede indexar.
Además de indicar que, también permite indicar el quien, ya que la directiva “User-agent” tiene como finalidad crear diferentes reglas para los diferentes bots.
¿Hay alguna otra forma de hacerlo?
El archivo robots.txt muchas veces tiene problemas con la granularidad, y es por eso que se puede complementar con la etiqueta “meta“, la cual permite definir en cada pagina si ésta puede ser indexada, además de detalles extras, como si los links de la pagina se deben seguir.
<meta name=”robots” content=”noindex, nofollow”>
Como se habrán dado cuenta, la etiqueta “meta” tiene la desventaja de poder estar presente solo en paginas HTML, y no en recursos como archivos PDF, SQL, etc, y aquí entran en juego los encabezados HTTP (HTTP Headers), los cuales permiten mediante el agregado del elemento “X-Robots-Tag”, incluir en la respuesta del servidor la misma información que se puede especificar en la etiqueta de HTML.
Pueden leer un poco sobre el uso de las etiquetas en la web de NoArchive.
La seguridad por oscuridad y el archivo robots.txt son incompatibles
Y por fin llegamos a lo que quería remarcar, tal vez la introducción fue un poco larga, pero bueno, quería añadir un poco de contexto. El concepto de seguridad por oscuridad se basa en una decisión de diseño que lleva a pensar que la información, si bien es vulnerable, el desconocimiento de la ubicación de la misma le da su seguridad.
Y es cuando el webmaster (que palabra vieja), quiere asegurarse de que los buscadores no indexen la misma cuando la terminan haciendo vulnerable, ya que el archivo robots.txt termina indicando como acceder a eso que muchas veces no se quiere hacer publico, aunque también sirve para evitar que los buscadores indexen paginas que no tienen ningún contenido o las cuales consumen muchos recursos como para ser servidas a un bot.
Por todo esto es que si quieren que algún archivo o servicio que no sea accesible al publico, lo que no deben hacer es incluirlo en el robots.txt. Sino que deben utilizar otras estrategias, como agregar el elemento X-Robots-Tags a los headers, o mejor aún, si se trata de información sensible, no enlazarla desde ningún lado, además de setear correctamente los Headers HTTP, si bien deberían situarla detrás de algún tipo de autenticación, al menos. No vaya a ser que mediante una búsqueda terminen quedando expuestos esos archivos que se esforzaron en ocultar, un Streisand Effect en potencia.
Conclusión (TL;DR)
Si querés ocultar algo y evitar que lo indexen, no lo agregues en el archivo robots.txt. Usá las demás alternativas.