Como webmasters debemos estar preparados para hacer frente a cualquier contingencia que suceda en nuestra cuenta o servidor, ya sea que alojemos nuestra web en un servidor compartido o tengamos nuestro propio servidor no estamos libres de ser víctimas de ataques malintencionados por parte de visitantes automatizados – más conocidos como bots – que pueden ingresar a nuestra web varios cientos o hasta miles de veces por minuto y no solo consumir nuestro ancho de banda sino que también existe la posibilidad que colapsen nuestra cuenta o nos generen serios problemas con nuestro proveedor de alojamiento.
Algunos de estos bots son agentes o crawlers que están genuinamente indexando nuestra web para sus propios buscadores, otros son bots que están tratando de recopilar direcciones de email para luego incorporarlas a su base de datos para spam, otros bots están buscando vulnerabilidades en nuestra web o formularios inseguros, para inyectar código o para publicar comentarios con publicidad (spam). Hace poco publicamos un artículo sobre como usar el archivo robots.txt para pausar algunos de estos bots
Y no solamente tenemos que enfrentar a bots, algunas páginas o servicios que refieren visitas a nuestra web (referers) pueden hacerlo de una forma tan masiva que también pueden colapsar nuestra web.
Cual es la solución? podemos bloquear a estos elementos indeseables desde nuestro archivo .htaccess este archivo debe estar en el directorio principal de nuestra web y si no lo está podemos crearlo, si ya tienen un archivo .htaccess con algunas lineas de comandos, solo tienen que agregar las lineas que recomienda este artículo, al final de dichos lineas existentes, recomiendo que hagan una copia de su .htacces original antes de realizar las modificaciones que mencionaré a continuación:
Bloquear acceso por User-Agent
RewriteEngine on #Incluír esta linea una sola vez si aún no esta presente
#En useragent debemos escribir el user-agent del atacante
RewriteCond %{HTTP_USER_AGENT} ^.*useragent.*$ [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*useragent2.*$
RewriteRule .* – [F,L]
Bloquear acceso por referer
RewriteEngine on #Incluír esta linea una sola vez si aún no esta presente
#En referer debemos escribir solo el nombre de la web del atacante ejemplo para www.malito.com seria malito
RewriteCond %{HTTP_REFERER} ^(http://)?(www\.)?.*(-|.)referer(-|.).*$ [NC,OR]
RewriteCond %{HTTP_REFERER} ^(http://)?(www\.)?.*(-|.)referer2(-|.).*$
RewriteRule .* – [F,L]
Pueden agregar lineas adicionales conteniendo más user-agents o referers, siempre y cuando la última linea RewriteCond no tenga al final [NC,OR]