Introducción

Los bots maliciosos representan una amenaza constante para tiendas online y sitios web. Consumen recursos, intentan vulnerar formularios, capturan contenido o lanzan ataques de fuerza bruta.

En esta guía aprenderás cómo bloquear bots maliciosos usando reglas en .htaccess y filtros PHP, con ejemplos claros y recomendaciones para evitar falsos positivos.

Índice

1. Cómo detectar bots maliciosos

  • 🚫 User-Agent sospechoso (vacío, genérico o falsificado)
  • 📈 Frecuencia excesiva de peticiones desde la misma IP
  • 🔎 Acceso a rutas típicas de vulnerabilidad (/wp-admin, /xmlrpc.php, /cart/add)
  • 🛠️ Encabezados falsos o sin cookies

2. Bloquear bots con .htaccess

Bloquear por User-Agent:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^$ [OR]
RewriteCond %{HTTP_USER_AGENT} (crawler|masscan|python|scrapy) [NC]
RewriteRule .* - [F,L]

Bloquear por IP:

Order Allow,Deny
Deny from 192.168.1.100
Deny from 203.0.113.0/24

🔒 Estas reglas son muy rápidas porque se ejecutan antes del PHP.

3. Bloquear desde PHP

<?php
$user_agent = $_SERVER['HTTP_USER_AGENT'] ?? '';
$ip = $_SERVER['REMOTE_ADDR'];

$bloqueados = ['python', 'scrapy', 'masscan', 'curl'];

foreach ($bloqueados as $bot) {
  if (stripos($user_agent, $bot) !== false) {
    header('HTTP/1.1 403 Forbidden');
    exit;
  }
}
?>

💡 Puedes combinarlo con un sistema de alertas o logs.

4. Registrar accesos sospechosos

<?php
$log = "[" . date("Y-m-d H:i:s") . "] $ip - $user_agent\n";
file_put_contents(__DIR__ . '/logs/bots.log', $log, FILE_APPEND);
?>

📁 Útil para revisar patrones o crear una lista negra dinámica.

5. Automatizar bloqueos por IP

  • ⚙️ Revisar logs cada noche y agregar IPs repetidas a `.htaccess`
  • 📤 Enviar alertas por email o Telegram
  • ⏱️ Usar cron para limpiar IPs tras 7 días si no repiten

6. Evitar falsos positivos

  • ✅ No bloquees bots de Google, Bing, etc.
  • 🧪 Verifica User-Agent antes de aplicar una regla
  • 🔄 Usa logs y listas temporales para IPs sospechosas

7. Conclusión

Bloquear bots maliciosos con .htaccess o PHP es una solución efectiva para proteger recursos, prevenir ataques y optimizar tu servidor. Si tienes patrones repetitivos, puedes automatizar la defensa y reducir el riesgo sin depender de plugins.

📩 ¿Necesitas un sistema de detección a medida para tu tienda o blog? Escríbenos.

Ir al contenido