DIEGO URBANEJA

EXPEDIENTE · 2026

Evidence Atlas — Arquitectura de seguridad

Caso de estudio sobre la versión anterior de esta web, que tenía un espacio privado de trabajo: cómo lo separé de la parte pública con autorización en servidor, permisos por fila (RLS) y copias de publicación sin datos privados.

FICHA DE EVIDENCIA

Qué hice y qué quedó demostrado.

Responsabilidad
Modelado de amenazas y diseño de los límites de identidad, datos privados, publicación, renderizado y operación del sistema.
Resultado
El navegador nunca elige a qué cuenta o espacio accede, las páginas públicas solo leen copias aprobadas y esos límites quedan cubiertos por tests unitarios y E2E en CI.
Validación
Tests unitarios de repositorio, publicación y sanitización; pruebas E2E de caché, indexación y superficie pública; lint, typecheck y build en CI.
Herramientas
Next.js · TypeScript · Supabase · PostgreSQL · Vitest

Fases del proyecto

  1. 01

    Modelo de amenazas

    Qué había que proteger: sesiones, notas privadas, material profesional y evidencia técnica. Frente a quién: visitantes anónimos, bots, el propio propietario y un atacante con una sesión o un proveedor comprometidos.

  2. 02

    Superficie de ataque

    Los puntos de contacto entre partes: navegador y servidor, el Studio (el espacio privado de edición) y la base de datos, los datos de trabajo y la copia pública, y la web y las cachés o buscadores. Parámetros, Markdown, enlaces y metadatos se tratan como entrada no fiable.

  3. 03

    Invariantes

    Reglas que no se rompen: todo acceso privado se autoriza en el servidor y con permisos por fila (RLS); el navegador nunca decide a qué cuenta o espacio accede; las páginas públicas solo muestran campos permitidos de copias ya publicadas.

  4. 04

    Controles

    Lista cerrada de propietarios con doble factor, permisos por fila denegados por defecto, copias de publicación inmutables, campos públicos definidos uno a uno, limpieza del contenido, Markdown sin HTML activo, CSP y la clave de administración solo en el servidor.

  5. 05

    Verificación

    CI ejecuta formato, lint, typecheck, tests, build y recorridos públicos en Chromium y móvil; Dependabot revisa dependencias.

  6. 06

    Riesgo residual

    Los controles reducen exposición, no garantizan seguridad absoluta: quedan riesgos de sesión o proveedor comprometido y errores operativos que requieren validación continua.

Ver todos los proyectos →

Origen

Documentado a partir del código y la documentación del repositorio y, cuando existe, del sitio publicado.

Fuente
Repositorio privado
Estado
Análisis de arquitectura