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: truenodeIntegration: 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.