Cómo librarse de las molestas visitas del webcrawler 80legs.com con Cherokee


80legs es un webcrawler que tiene la molesta costumbre de visitar todas las páginas de tu sitio web con cientos de visitas simultáneas desde diferentes direcciones ip con el resultado de que pueden llegar a tirarte abajo tu servidor, algo muy parecido a un ataque DDOS pero con barniz de legalidad.

La forma de identificarlos es revisando los logs del servidor donde podrás ver que el useragent de la visita es:
Mozilla/5.0 (compatible; 008/0.83; http://www.80legs.com/webcrawler.html) Gecko/2008032620

En su página te dicen que si no deseas que rastreen tu sitio web debes de añadir en el robots.txt lo siguiente:

User-agent: 008
Disallow: /

Mi experiencia es que muchas veces pasan olímpicamente del robots.txt o también puede darse el caso de que no puedas cambiar nada en ese fichero por lo que lo único que te queda para luchar con ellos es a través del servidor.

En mi caso el problema se me presentó en un servidor donde hay mucho tráfico y en el que utilizo cherokee como servidor web. Para solucionarlo lo que hice fue filtrar las visitas que me llegan con el useragent de 80legs.

Para hacerlo sólo hay que añadir una regla de tipo “header” con la cadena 008 ó 80legs.

Y después hacer lo que quieras con esas visitas: redireccionarlas a una página estática, mostrar un error (en el ejemplo un error 509 – Bandwidth Limit Exceeded – ó un 404 – página no encontrada – ) o simplemente mandarlos al carajo (un DROP).


Actualización
Si quieres bloquearlos desde un servidor con apache lo único que tienes que hacer es añadir estas líneas al fichero .htaccess de tu sitio web:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} (80legs)
RewriteRule ^(.*)$ – [F]