11 — Privacidad y seguridad · COMAL
No constituye asesoramiento legal. Revisar con counsel antes de lanzamiento.
Datos personales tratados
| Dato | Base (hipótesis) | Finalidad |
|---|---|---|
| Email, nombre | Contrato | Cuenta |
| Teléfono | Contrato / interés legítimo recordatorios | Check-in, soporte |
| Ubicación aproximada | Consentimiento | Distancia a cocinas |
| Pagos | Contrato | Stripe como encargado |
| Logs de acceso | Interés legítimo seguridad | Fraude, incidentes |
| Reseñas | Contrato | Confianza marketplace |
Principios
- Minimización: no pedir NIF en v1 salvo facturación empresa.
- PSP: Stripe — no almacenar PAN.
- Cifrado en tránsito TLS 1.2+.
- Secretos en vault / env, no en repo.
- RLS o checks de autorización por
kitchen_idyuser_id. - Soft delete + derecho de supresión (export + delete account).
- Retención de facturas según obligación fiscal.
Amenazas y controles
| Amenaza | Control |
|---|---|
| Doble booking | Exclusion constraint + locks |
| Enumeración de reservas ajenas | AuthZ en API |
| Scraping de listados | Rate limit |
| Fraude de pago | Stripe Radar, 3DS |
| PIN filtrado | PIN de un solo uso por reserva, hash at rest |
| Subida de malware en certificados | MIME allowlist, scan, bucket privado |
| XSS | React escape + CSP |
| CSRF | SameSite + tokens en mutaciones cookie |
Roles y acceso físico
COMAL no garantiza cerraduras smart en v1; el check-in puede ser validación humana. Documentar responsabilidad del operador.
Cookies
- Esenciales sesión
- Analytics (PostHog) con consentimiento si no estrictamente necesarias
- Banner ES conforme ePrivacy (implementación)
Incidentes
Runbook: detectar → contener → notificar DPO/usuarios si alto riesgo (72h AEPD si aplica).