Bloquear User-Agent con .htaccess

Como mencionaba en otro post existen más de un Millon de User-Agent y el número tal vez seguirá aumentando, es casi imposible bloquearlos a todos y no todos pasaran por tu web, pero existen bots que forman parte de una lista negra de «Malos Bots».

Estos son bots que se identifican como dañinos o al menos no útiles para el uso real de un sitio web.

Hay dos razones para bloquear a estos User-Agent

La razón numero uno, demasiados bots innecesarios pueden poner una carga real en el servidor, sobre todo si tu web esta alojada en un servidor compartido, haciendo que el sitio web se ralentice para los usuarios reales.

Estos bots malos no respetan las entradas en el archivo robots.txt y rastrean incluso las páginas bloqueadas. Esto puede significar un gran número de páginas adicionales que se rastrean, lo que genera aún más carga en el servidor.

Y lo ideal es mantener la carga del servidor lo más baja posible para no tener problemas con nuestro proveedor de alojamiento.

La otra razón para bloquear estos bots es que están recolectando datos con fines nefastos, algunos son «raspadores» que recopilan el contenido de un sitio web con el fin de reutilizarlo de forma ilegal en otro sitio, otros están buscando ciertos archivos o complementos en su sitio que se sabe que son inseguros para atacarlo luego, etc.

Hay que mencionar, además que estas listas negras son creadas y mantenidas por especialistas en seguridad que han hecho pruebas en los diferentes robots para determinar cuáles son legítimos / beneficiosos y cuáles son malos bots.

Este artículo supone que ya está familiarizado con la funcionalidad básica de WordPress y con la edición de ficheros en su hosting.

Bloquea peticiones de User-agent indeseables

# denegar user-agent
RewriteEngine On 
RewriteCond %{HTTP_USER_AGENT} CazoodleBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Java [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Jakarta [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteCond %{HTTP_USER_AGENT} libwww [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^PeoplePal [NC,OR]
RewriteCond %{HTTP_USER_AGENT} libwww-perl.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^PHPCrawl [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Zend_Http_Client [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ZyBorg [NC]
RewriteRule ^.*$ - [F]

El código funciona de la siguiente manera, Apache hace una llamada RewriteEngine y toma la lista de condiciones RewriteCond% detecta fácilmente los User-Agent escritos en el .htaccess y les aplica la regla F (Forbidden) que significa Prohibido y ^.*$ que indica «todo», toda la cadena.

Ten en cuenta que la lista anterior esta mezclada aleatoriamente por razones de mantenimiento y tamaño, solo esta un porción pequeña de la lista pero puedes verla completa en Cloudup.

Puedes mantener el archivo actualizado si debes bloquear nuevos bots solo edita tu .htaccess en la linea correspondiente y agrega el nuevo User-Agent que causa problema en tu sitio web.

Similar Post