🔒 Laboratorio de Seguridad Web

Sistema integrado de pruebas para medidas de seguridad en aplicaciones PHP

✅ Base de datos conectada correctamente (3 usuarios registrados)

🎯 Bienvenido al Laboratorio de Seguridad

Esta aplicación demuestra diversas técnicas de seguridad web implementadas en PHP.

🛡️ Características Implementadas

  • Protección contra CSRF con tokens
  • Validación y sanitización de formularios
  • Prevención de SQL Injection con PDO
  • Protección contra XSS con htmlspecialchars
  • Hash seguro de contraseñas con password_hash
  • Sistema de login seguro
  • Manejo centralizado de errores y logs
  • Escape de output HTML
  • Regeneración de ID de sesión

🚀 Pruebas Disponibles

  • Formulario con protección CSRF
  • Validación de datos frontend/backend
  • Búsqueda segura en base de datos
  • Sistema de comentarios protegido
  • Login seguro con verificación
  • Manejo de excepciones y errores
  • Registro de logs de aplicación
💡 Información:
  • Usuario demo: demo@test.com / password
  • Los logs se guardan en: logs/app.log
  • Todas las consultas usan PDO prepared statements

🛡️ Protección CSRF

Este formulario está protegido contra ataques CSRF mediante tokens de sesión.

⚠️ Prueba: Intenta modificar el token CSRF en las herramientas de desarrollador para ver cómo el sistema rechaza la petición.

✅ Validación de Formularios

Formulario con validación tanto en frontend como en backend.

🔒 Características de seguridad:
  • Validación en frontend con HTML5
  • Validación en backend con PHP
  • Campo password oculto con CSS
  • Contraseñas hasheadas con password_hash
  • Limpieza de variables sensibles en memoria

🗄️ Prevención SQL Injection

Búsqueda segura usando consultas preparadas.

🔒 Seguro: Esta búsqueda usa consultas preparadas que previenen la inyección SQL.
// Código seguro usando PDO
$stmt = $db->prepare("SELECT id, nombre FROM usuarios WHERE email = :email");
$stmt->execute([':email' => $email]);
$user = $stmt->fetch();

⚠️ Protección XSS

Sistema de comentarios con protección contra Cross-Site Scripting.

Ver Comentarios
💡 Prueba XSS: Intenta ingresar: <script>alert('XSS')</script>
El sistema escapará el código y lo mostrará como texto plano usando htmlspecialchars().

🔑 Sistema de Login Seguro

Autenticación con verificación segura de contraseñas.

Credenciales de prueba:
Email: demo@test.com
Password: password

💬 Sistema de Comentarios

Gestión segura de comentarios con prevención de XSS.

Ver Todos los Comentarios
Características de seguridad:
  • Validación de longitud (máx. 2000 caracteres)
  • Escape de HTML con htmlspecialchars()
  • Preservación de saltos de línea con nl2br()
  • Consultas preparadas para prevenir SQL injection
  • Manejo de caracteres especiales UTF-8

🐛 Manejo de Errores y Logs

Sistema centralizado de manejo de excepciones y registro de logs.

Probar Manejo de Errores Ver Logs
Características implementadas:
  • Manejo global de excepciones
  • Manejo global de errores
  • Registro de logs en archivo logs/app.log
  • Mensajes de error amigables para usuarios
  • Información detallada de errores en logs
// Configuración de logs
ini_set('log_errors', 1);
ini_set('error_log', __DIR__ . '/logs/app.log');

// Manejo de excepciones
set_exception_handler(function(Throwable $e) {
  error_log("[EXCEPTION] {$e->getMessage()} en {$e->getFile()}:{$e->getLine()}");
  http_response_code(500);
  echo "Ocurrió un problema. Inténtalo más tarde.";
});