Saltar a contenido

08. Security & Authorization Model

Fase: 04 — Modelado del Sistema
Entregable: 08
Proyecto: NoteVault (PC, Mac, Android, iPhone)


1. Modelo de Seguridad y Autorización Local

  • Autenticación: El modelo es mono-usuario local soberano. El acceso a los datos está gobernado por los permisos del usuario en el sistema operativo (UID/GID en Unix/macOS y ACLs de Windows).
  • Protección contra Inyección y XSS: Todo Markdown renderizado en React pasa obligatoriamente por DOMPurify.sanitize() antes de inyectarse en el DOM.
  • Aislamiento de Ventana Electron:
  • contextIsolation: true
  • nodeIntegration: false
  • La ventana no navega a sitios externos; todo enlace web se abre con shell.openExternal() en el navegador del sistema.
  • Confinamiento de Rutas: Toda petición de archivo se valida en appState.resolve() impidiendo referencias circulares, rutas con .. o escape del directorio raíz.

2. Marco Conceptual: Modelo de Seguridad de Aplicación Local

1. **Entidad principal e independiente.** 2. **Es la entidad líder del conjunto de datos:** posee un identificador global único que sella la política de protección de datos (`security_model_id`: `SEC-LOCAL-CONFINEMENT`) consultado en las revisiones de seguridad. 3. **Existe por sí misma en el diseño de arquitectura sin depender de proveedores de OAuth externos**, y es la única responsable de asegurar que el contenido de las notas no pueda ejecutar código malicioso en el sistema anfitrión. 4. **Punto de entrada y límite de consistencia:** Si una ruta intenta salir de la bóveda, se lanza un `ApiError` inmediato.