<aside> 🗺️

Delivery 1 — Tarea 2 | Proyecto: vulnerable-node (PsEA v1.0) | Fecha: 2026-02-08 | Método: Domain-Driven Design Context Mapping

</aside>


1. Bounded Contexts Identificados

El monolito vulnerable-node contiene 4 Bounded Contexts lógicos. La separación de responsabilidades es clara en intención pero deficiente en implementación — Catalog y Orders comparten archivos de ruta y modelo (Shared Kernel de facto).


BC1: Identity & Access Management

<aside> 🔐

Responsabilidad: Autenticación de usuarios, gestión de sesiones, guardia de autorización

</aside>

Entidades de Dominio:

Archivos:

Archivo Rol Líneas Clave
routes/login.js Route handler: login form, auth, logout 54 líneas total
routes/login_check.js Auth guard middleware 10 líneas — ROTO (sin return)
model/auth.js Data layer: SQL query de autenticación 12 líneas — CWE-89 en línea 7

Endpoints:

Método Ruta Operación Vulnerabilidades
GET /login Render formulario login XSS (returnurl sin escapar)
POST /login/auth Autenticar credenciales CWE-89, CWE-601
GET /logout Destruir sesión Session no destruida (flags only)

<aside> 🚨

Riesgo Arquitectónico: El auth guard check_logged() en login_check.js:2-7 ejecuta res.redirect() pero no retorna — todo handler posterior continúa ejecutándose sin autenticación. Esto invalida toda la capa de autorización del sistema.

</aside>


BC2: Product Catalog

<aside> 📦

Responsabilidad: Listado, detalle y búsqueda de productos

</aside>

Entidades de Dominio: