v1.3.0 — security hardening + backups
Security hardening (auditoría v1.2.0)
Fixes anteriores (v1.2.1)
- ENC_KEY fuera de la BD: clave de cifrado desde variable de entorno
- IP real del socket para rate-limit: XFF solo con TRUST_PROXY=true
- Fotos desde subdirectorio: raíz estática es DATA_DIR/photos
Nuevas mejoras (v1.3.0)
- SESSION_SECRET desde entorno: igual que ENC_KEY, evita falsificación de sesiones si roban la BD
- Cookie secure: true siempre: adecuado para despliegue solo LAN
- Timeout sesión 30 → 7 días
- Password mínimo 6 → 10 caracteres (nuevas/reset, no login existente)
- Rate limits en /sync y subidas de fotos: 5/min y 20/min respectivamente
- Validación magic bytes en fotos: verifica contenido real (JPEG/PNG/WebP), no solo file.type
- Backup diario automático: configurable desde Ajustes (admin), con retención de 3 a 90 días
- Tabla rate_limits en BD para control de acciones costosas
Migración
Para instalaciones existentes, añadir a /opt/keynest/server/.env:
# Generar claves seguras
openssl rand -hex 32
# Añadir al env
echo 'SESSION_SECRET=<clave-generada>' >> /opt/keynest/server/.env