enchufado
   RSS
#
BecomeBot (Internet) 2005-01-30 00:11:40

Hoy estaba curioseando por primera vez la información de las últimas visitas al blog, y me he encontrado un poco de todo. Conocido es el hecho que varios bots (también llamados 'spiders' o arañas) de sitios dispares se dedican a ir "descubriendo" las novedades que surgen en la WWW.

En mi caso me he encontrado el de Bloglines, el de IconSurf (que busca favicons), el Yahoo! Slurp, el de Syndic8 (que busca feeds), el Googlebot, el Ask Jeeves/Teoma, el de Blogdigger, el InnerpriseBot, el Yahoo-MMCrawler (un spider multimedia), oBot (¿?), el PubSub.com RSS reader, el UniversalFeedParser, el blogsnowbot, el Feedster Crawler, el Technoratibot, el UniversalFeedParser, el msnbot (un bot hambriento de posts), y seguiría así ad-infinitum. En esta página podemos informarnos de algunos de ellos (los más conocidos).

De los citados, la mayoría se conforman con poca cosa: la página índice, los feeds, otros algunas imágenes, etc... Pero hay algunos que no ponen límite a su exploración, y si no supiera a día de hoy que no tienen ojos, juraría que siguen la ley del "culo veo, culo quiero". En otras palabras, usurpan una gran cantidad de contenido, cuando no lo hacen con el site entero. Esto es un problema, dada la limitación del ancho de banda disponible de los pequeños sitios web. El msnbot roza el límite de lo aceptable, pero un tal BecomeBot ha arrasado todo el blog (¡y menos mal que es pequeño!), con el fin de construir "un motor de búsqueda de nueva generación" -según rezan sus creadores-.

Hay varios modos de evitar esto. Yo conozco dos. Uno de ellos pasa por el más simple, y el que se debería usar en primera instancia: el fichero robots.txt, que suele ser respetado por la mayoría de bots 'legales' (los que siguen el Robots Exclusion Standard). Como pequeño ejemplo, en el fichero pondríamos lo siguiente si no queremos que ningún bot nos indexe nada que tengamos en nuestro site:

User-agent: *
Disallow: /

En "User Agent" podemos filtrar por nombre de bot, en lugar de usar una wildcard para todos, y en "Disallow" podemos especificar cualquier ruta, en lugar de poner el raíz de nuestro site. Con esto podremos ser más específicos en nuestro filtrado, si es lo que nos interesa.

Como apunte final, debe saberse que en ocasiones cabe dejar pasar unos días hasta que el bot de turno se da cuenta que las reglas del fichero robots.txt han cambiado y las aplique (si es que lo hace), así que paciencia.

El otro pasa por el fichero .htaccess, que es una forma de hacer cambios de configuración en Apache sin necesidad de indicarle que los hubo, sin necesidad de tocar su fichero de configuración, y con una política de aplicación de configuraciones por directorios. Antes de empezar a tocar nada, conviene saber cómo son aplicadas las directivas (básicamente funciona de forma recursiva, por directorios -por orden de jerarquía-), para evitar posibles malentendidos.

Este método es más seguro, pues se aplicará a ciencia cierta. En otras palabras, no es necesario que el objetivo respete la ética de las reglas de los bots/spiders. En este modo, conozco 2 variantes (aunque habrá muchas más que desconozco):

  1. Definir variables basadas en atributos HTTP (User-Agent's, en este caso) y negarles el acceso a los ficheros/directorios. Esto se hace mediante el parámetro SetEnvIfNoCase, de modo non-case-sensitive. Un ejemplo lo podéis encontrar aquí (el foro de mi hosting), pero el esqueleto sería:
  2. SetEnvIfNoCase User-Agent "Nombre User Agent" bad_bot
    (...Así con todos los que queremos incluir...)
    <Files ~ ".(htm*|otra_extensión)$">
    order allow,deny
    allow from all
    Deny from env=bad_bot
    </Files>
    
  3. Banear acceso por IP o nombre de dominio. Esto es más sencillo, aunque sólo útil cuando sabemos la IP (suponiendo que sea fija) o el dominio origen de los problemas. Un ejemplo de permitir acceso a todo el mundo, excepto a quien queramos banear, sería:
  4. order allow,deny
    deny from IP #Dónde IP es, p.ej. 10.10.10.2
    deny from dominio #Dónde dominio es, p.ej. casino.net
    allow from all
    

Con estos pequeños consejos podemos dar solución a algunos problemas que nos plantean visitantes non-gratos. Y si conoces otros, eres libre de explicárnoslos :)


Comentarios (7)


Volver al indice

login, admin, form, register