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 identificar bots maliciosos
- 2. Reglas .htaccess para bloquear bots
- 3. Bloqueo desde PHP en tiempo real
- 4. Cómo registrar intentos sospechosos
- 5. Automatizar bloqueos con lista negra
- 6. Falsos positivos y recomendaciones
- 7. Conclusión
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.