Proteger un sitio web no siempre requiere herramientas complejas o servicios de terceros. A veces, una capa simple de validación puede filtrar bots básicos o accesos no deseados. En este post te muestro cómo hice mi propio sistema de protección web en PHP hace algunos años — y aunque no es perfecto, sigue siendo útil para proyectos pequeños o educativos.
🧠 ¿Qué hace este sistema?
- Detecta y bloquea bots comunes analizando cabeceras como
User-Agent
,Referer
, etc. - Redirige accesos sospechosos a una página de advertencia.
- Puedes proteger archivos con contraseña.
- Es liviano, fácil de integrar y 100% PHP puro.
📥 Descarga del proyecto
Repositorio en GitHub:
🔗 https://github.com/spacehowen/web-protection
Puedes clonarlo con Git:
git clone https://github.com/spacehowen/web-protection.git
O descargarlo como archivo ZIP y extraerlo en tu servidor.
📁 Estructura del proyecto
web-protection/
├── index.php ← Página protegida de ejemplo
├── web_protection.php ← Lógica de bloqueo y detección
├── asset/
│ └── denied.html ← Página de advertencia
🧪 Cómo funciona
1. Análisis de cabeceras
El sistema revisa si las cabeceras HTTP son típicas de navegadores reales. Por ejemplo:
- User-Agent vacío o que contiene “curl”, “wget”, “python” → bloqueado
- Sin
Referer
oAccept-Language
→ sospechoso
2. Redirección a página de advertencia
Si algo huele raro, el visitante es redirigido a asset/denied.html
.
3. Protección con contraseña
Puedes activar una contraseña manual. En el código encontrarás:
$lock = md5(sha1('password'));
🔒 ¡Aquí cambias la contraseña!
Reemplaza 'password'
por tu propia clave:
$lock = md5(sha1('MiClaveSegura123'));
Nota: Este método no es seguro para producción. Es mejor usar password_hash()
y password_verify()
si vas a proteger contenido sensible.
⚙️ Cómo integrarlo en tu sitio
En cualquier archivo PHP que quieras proteger, simplemente agrega al inicio:
<?php
include 'web_protection.php';
?>
Esto activará la lógica de protección en esa página.
🛑 Personaliza la página de advertencia
Edita el archivo:
asset/denied.html
Puedes poner tu mensaje, imagen o incluso redirigir a una página externa después de unos segundos.
Ejemplo básico:
<h1>Acceso denegado</h1>
<p>Hemos detectado actividad sospechosa desde tu navegador.</p>
🚧 Limitaciones
Este sistema es básico, por lo tanto:
- No detiene bots avanzados ni ataques dirigidos.
- No incluye CAPTCHA ni protección contra DDoS.
- No tiene logs de IPs ni integración con APIs externas.
Pero… cumple muy bien su objetivo: filtrar el tráfico más ruidoso y automatizado de forma simple.
🔧 ¿Qué puedes mejorar?
Si te interesa seguir desarrollándolo, podrías:
- Agregar validación por JavaScript para detectar navegadores reales.
- Incluir un sistema de logs con IP y hora.
- Mostrar un CAPTCHA como segunda validación.
- Integrarlo como middleware en proyectos más grandes.
✅ Conclusión
Este sistema de protección web fue uno de mis primeros proyectos, y aunque es sencillo, me ayudó a entender conceptos clave de seguridad y cómo funciona el tráfico HTTP. Hoy en día lo usaría solo como una primera capa de defensa, pero sigue siendo una excelente herramienta educativa o para sitios personales.
¿Te animas a probarlo o a crear el tuyo?
🧑💻 Código completo aquí: https://github.com/spacehowen/web-protection
¿Quieres comentar?
Inicia sesión o regístrate para participar en la conversación