Saltar a contenido

Arquitectura de Seguridad y Guard

El CRM implementa un modelo de seguridad tipo "Front-Controller Gatekeeper" distribuido a través de todos los módulos. Ningún archivo PHP directo de la aplicación puede ejecutarse saltándose estas comprobaciones de integridad.

El Patrón _guard.php

Cada módulo de acciones (modules/*/actions/*.php) está protegido por un archivo base _guard.php localizado en su respectivo directorio actions/.

Este archivo se invoca en las primeras líneas de cualquier acción y se encarga de: 1. Verificar el Método HTTP: Solo se permite tráfico POST. Las peticiones GET a scripts de acción son rechazadas automáticamente con código 405 Method Not Allowed. 2. Autenticación y Sesión: Comprueba si existe un token de sesión válido y si el usuario está activo. 3. Control de Origen (CSRF): Ejecuta la función app_verify_same_origin_request() para asegurar que la llamada proviene del dominio oficial y no es un ataque Cross-Site Request Forgery.

Ejemplo de uso (Acción típica)

<?php
// module/clientes/actions/crear_cliente.php
require_once __DIR__ . '/_guard.php';
$modulo_clientes_action_bootstrap();

// La ejecución solo llega hasta aquí si todas las reglas de seguridad han pasado
$nombre = $_POST['nombre'] ?? '';
// ... lógica de negocio ...

Por qué este enfoque

  • Universalidad: Al parchear masivamente todos los scripts existentes, cerramos cualquier posible brecha legacy.
  • Transparencia: Los programadores de nuevos módulos no necesitan escribir complejas comprobaciones de sesión, basta con hacer un require del guardián.
  • Auditoría: Todas las peticiones denegadas son registradas en los logs centrales del servidor.