Limitando el acceso a bots en un servidor web
Desde que Internet es Internet, contamos con la ayuda de los buscadores para encontrar aquello que estamos buscando (al menos, en la web). A veces, no nos interesa que determinado contenido sea indexado por los buscadores y para ello solemos recurrir a un fichero llamado robots.txt, que la mayoría de los buscadores suelen hacer cierto caso.
Pero este fichero, conjuntamente con directivas incluidas en el propio código (como nofollow o noindex), es ignorado o malinterpretado por muchos otros buscadores que no respetan este estándar. Para evitar esto, podemos contar con los ficheros .htaccess y una serie de «truquitos» que veremos a continuación.
Vamos a usar dos directivas de .htaccess para limitar el acceso a ciertos bots. Estas directivas, BrowserMatch o BrowserMatchNoCase conjuntamente con Deny, para impedir que determinado contenido pueda ser accesible por aquellos bots identificados con determinada cadena de texto.
Como ejemplo, vamos a ver una entrada de un log de apache con un bot indeseable:
6.29.7.17 – – [16/May/2011:02:27:00 +0200] «GET / HTTP/1.1» 200 963 jesusdml.es «-» «Mozilla/5.0 (compatible; malotebot/2.1)» «-«
Si queremos evitar la entrada de los bots que se identifican con la palabra «malotebot» (puede ser parte o la palabra entera. Por ejemplo «bot» será válido para robot, ibot, rbot, etc.) deberemos añadir o crear un fichero .htaccess en el raiz, con el siguiente contenido:
BrowserMatchNoCase malote tunobicho Order Deny,Allow Deny from env=tunobicho
Con ello, hemos creado una variable que se llama «tunobicho» en donde hemos denegado todos los navegadores/robots que usen esa cadena como identificativo. Si queremos añadir otro bot a la lista negra, lo podemos ir situando encima del anteriormente indicado, asignandoles la misma variable:
BrowserMatchNoCase malvado tunobicho BrowserMatchNoCase tunante tunobicho BrowserMatchNoCase malote tunobicho Order Deny,Allow Deny from env=tunobicho
De igual forma, tambien podemos usar esto para añadir un extra de seguridad a la parte administrativa de la web. Si añadimos o creamos lo siguiente al fichero .htaccess en el directorio de administración de nuestra web…:
BrowserMatchNoCase Safari tusiquevales Order Deny,Allow Deny from all Allow from env=tusiquevales
…únicamente podremos entrar a ese directorio (y subdirectorios) usando un navegador Safari. Esto lo podemos usar tambien con IPs de origen.
Por ejemplo, si queremos que se pueda acceder solo desde la IP 10.20.30.40, deberemos crear o editar un fichero .htaccess con el siguiente contenido:
Order deny,allow deny from all allow from 10.20.30.40
Puedes echarle un vistazo a este directorio de mi web con Safari y luego con Mozilla u otro navegador 🙂
Saludos,