Bloquee todas esas peticiones innecesarias que ve en los registros

Supongo que habrá echado un vistazo a los registros de visitas de su sitio web y se habrá hartado de esas solicitudes no deseadas. Puede que no sean necesariamente malas o spam, pero es posible que no aporten valor al negocio. Imagínese si la mayoría de las visitas llegan a través de ese usuario-agente o referentes no deseados y cree que su sitio está recibiendo un buen tráfico, pero en realidad no sirven para nada.

La mejor forma de gestionarlos es deteniéndolos en el borde como dispositivos de red, equilibrador de carga, cortafuegos o CDN. Pero, entiendo que puede no ser factible para un bloguero personal o sitios web pequeños, y puede que quiera bloquear a un nivel inferior como servidores web, WordPress, etc.

Espero que ya tenga una lista de referer y user-agent que quiera bloquear. Empecemos.

Como mejor práctica, haga una copia de seguridad del archivo de configuración antes de modificarlo para que pueda volver atrás cuando las cosas vayan mal.

Nginx

Nginx alimenta millones de sitios y es muy popular entre los alojamientos web. Si está utilizando Nginx, a continuación le explicamos cómo puede detenerlos. Digamos que está recibiendo muchas peticiones automatizadas con el siguiente user-agent y ha decidido bloquearlas.

  • java
  • curl
  • python
if ($http_user_agent ~* "java|curl|python") {
    return 403;
}

Si desea que estos redirijan a algún sitio, entonces

if ($http_user_agent ~* "java|curl|python") {
    return 301 https://yoursite.com;
}

La configuración anterior debe estar bajo el bloque del servidor.

Y la siguiente para bloquear por referentes. El siguiente ejemplo que debe ir bajo el bloque de ubicación para bloquear peticiones de semalt.com, badsite.net, example.com.

if ($http_referer ~ "semalt\.com|badsite\.net|ejemplo\.com") {
  return 403;
}

Tras realizar los cambios necesarios, deberá guardar el archivo y reiniciar Nginx para que surtan efecto.

Para reiniciar Nginx, puede utilizar

service nginx restart

Nginx es un potente servidor web y si está interesado en aprenderlo, consulte este curso en línea.

Apache HTTP

Para bloquear el user-agent en Apache, puede utilizar el módulo mod_rewrite. Asegúrese de que el módulo está activado y, a continuación, añada lo siguiente en el archivo .htaccess o en el archivo .conf correspondiente.

Si tiene varios sitios configurados y desea bloquear para una URL específica, entonces puede ponerlos en la sección VirtualHost respectiva.

RewriteEngine Activado
RewriteCond %{HTTP_USER_AGENT} badcrawler [NC,OR]
RewriteCond %{HTTP_USER_AGENT} badbot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} badspider [NC]
RewriteRule . - [R=403,L]

La regla anterior bloqueará cualquier solicitud que contenga user-agent como badcrawler, badbot y badspider.

Y, el ejemplo de abajo para bloquear por el nombre del referrer BlowFish, CatchBot, BecomeBot.

RewriteEngine activado
RewriteCond %{HTTP_REFERER} blowfish|CatchBot|BecomeBot [NC]
RewriteRule . - [R=403,L]

Como de costumbre, reinicie el servidor Apache y para probar los resultados.

WordPress

Si está utilizando WordPress en un alojamiento compartido o no tiene acceso a la configuración del servidor web o no se siente cómodo modificando el archivo, entonces puede utilizar el plugin WP. Existen muchos plugins de seguridad para WP, y uno de los más populares para bloquear bots malos es Blackhole for Bad Bots.

Conclusión

Espero que los consejos anteriores le ayuden a detener al malo para que las peticiones legítimas no se vean afectadas. Si está buscando una protección de seguridad completa, entonces también puede considerar el uso de WAF basados en la nube como Astra o SUCURI.