No olvides corregir los hallazgos de Security CheckerAsegúrate de abordar los hallazgos del Security Checker integrado de Lovable antes de publicar tu app en línea. El Security Checker analiza automáticamente tu aplicación y proporciona recomendaciones valiosas para mejorar la seguridad.
Comprender la arquitectura de Lovable
- Frontend: aplicación TypeScript/React
- Backend: Supabase Edge Functions (funciones serverless)
- Base de datos: Supabase (PostgreSQL con capacidades en tiempo real)
Seguridad en el frontend: nunca confíes en el código del cliente
La regla de oro: el código de frontend es público
- Nunca almacenes secretos en el código de frontend: claves API, contraseñas o configuración sensible
- Nunca realices validaciones en el código de frontend: la validación en el lado del cliente puede eludirse
- Nunca confíes en los datos del frontend: valida siempre en el lado de las Funciones Edge
Errores comunes de seguridad en el frontend
Ejemplos de indicaciones para validar y mejorar la seguridad en el frontend
Seguridad del backend: mueve la lógica de negocio a Funciones Edge
Considera las Funciones Edge como tu capa de API
- Autenticación y autorización
- Validación y limpieza de datos
- Lógica de negocio y flujos de trabajo
- Integración con servicios externos
- Procesamiento de datos sensibles
Mejores prácticas para Funciones Edge
Qué deberían manejar las Funciones Edge
- Verifica siempre que los usuarios sean quienes dicen ser antes de permitirles realizar acciones
- Comprueba si los usuarios tienen los permisos adecuados para operaciones específicas
- Nunca des por hecho que alguien ha iniciado sesión solo porque lo diga
- Revisa todos los datos entrantes para asegurarte de que tengan el formato correcto
- Elimina cualquier contenido potencialmente dañino de las entradas de usuario
- Asegúrate de que los datos cumplan las reglas de tu negocio antes de procesarlos
- Gestiona procesos de negocio complejos como el procesamiento de pedidos, los cálculos de pagos o el registro de usuarios
- Administra las relaciones entre diferentes elementos de datos
- Coordina múltiples pasos dentro de una sola operación
- Conéctate de forma segura a servicios de terceros como procesadores de pagos, proveedores de correo electrónico o APIs
- Mantén seguras las claves API y las credenciales sensibles
- Maneja los errores y los tiempos de espera de forma adecuada
- Procesa información personal, datos financieros u otros contenidos sensibles
- Aplica cifrado u otras medidas de seguridad cuando sea necesario
- Registra eventos importantes para auditorías de seguridad
Beneficios de seguridad de las Funciones Edge
Ejemplo de indicaciones para funciones Edge seguras
Seguridad de la base de datos: mantén RLS simple y empieza cuanto antes
Row Level Security (RLS) en Lovable
Patrones comunes de RLS en apps de Lovable
- Los usuarios solo deberían ver su propio perfil, configuración y datos personales
- Patrón predeterminado: “Los usuarios solo pueden acceder a sus propios datos”
- Los miembros del equipo pueden ver datos de Proyecto compartidos dentro de su equipo
- Patrón: “Los usuarios pueden acceder a los datos de los equipos a los que pertenecen”
- Publicaciones públicas que cualquiera puede leer, pero que solo los propietarios pueden editar
- Patrón: “Cualquiera puede leer, solo los propietarios pueden modificar”
- Los empleados de una empresa pueden acceder a los datos de su empresa
- Patrón: “Los usuarios pueden acceder a los datos de su organización”
Revisar el RLS en tu app de Lovable
- Revisa qué tablas tienen RLS activado
- Verifica que las tablas con datos sensibles estén protegidas
- Asegúrate de que las tablas con datos públicos tengan políticas de lectura adecuadas
- Verifica que los usuarios solo puedan ver sus propios datos
- Prueba que los datos compartidos sean accesibles para las personas adecuadas
- Confirma que los datos públicos sean visibles para todos
- Tablas sin RLS activado en datos sensibles
- Políticas demasiado permisivas que exponen demasiados datos
- Falta de políticas para tablas o funcionalidades nuevas
Ejemplos de instrucciones para revisar RLS
Lista rápida de verificación de RLS
- Todas las tablas sensibles tienen RLS habilitado
- Los usuarios solo pueden acceder a sus propios datos personales
- Los datos compartidos cuentan con controles de acceso adecuados
- Las tablas nuevas reciben automáticamente políticas de RLS
- Las políticas son simples y fáciles de entender
Seguridad de la autenticación: Mantén la lógica en el servidor
La lógica de autenticación debe ejecutarse en el servidor
- Nunca confíes en las comprobaciones de autenticación del lado del cliente - Las personas usuarias pueden modificar el código del navegador
- Valida los tokens en el servidor - Verifica siempre la autenticación en Funciones Edge
- Mantén la gestión de sesión en el servidor - Deja que Supabase maneje el almacenamiento seguro de sesiones
- Nunca expongas secretos de autenticación - Las claves API y los tokens nunca deben llegar al frontend
Flujo de autenticación seguro
Mejores prácticas de autenticación
- Verifica siempre la autenticación del usuario en Funciones Edge antes de procesar solicitudes
- Comprueba los permisos y roles del usuario en el servidor, no en los componentes de React
- Valida los tokens de sesión contra la base de datos o el servicio de autenticación
- Usa la gestión de sesiones integrada de Supabase para almacenar los tokens de forma segura
- Muestra la interfaz de usuario según el estado de autenticación, pero nunca tomes decisiones de seguridad allí
- Redirige a la página de inicio de sesión cuando las sesiones expiren, pero valida primero en el servidor
Protección del espacio de trabajo: protege tus aplicaciones internas
Asegúrate de que las aplicaciones internas tengan la visibilidad configurada como “Workspace”
Para las aplicaciones que no deberían ser accesibles públicamente:- Establece la visibilidad del Proyecto de las aplicaciones internas en “Workspace” en el panel del Proyecto
- Verifica que no estén publicadas en Internet
- Utiliza autenticación adecuada para todas las herramientas internas
- Audita periódicamente el acceso a las aplicaciones privadas
Resumen de buenas prácticas de seguridad
Flujo de desarrollo
- Empieza con la seguridad en mente - Implementa RLS y autenticación desde el primer día
- Usa el comprobador de seguridad - Ejecuta regularmente el comprobador de seguridad de Lovable
- Sigue las recomendaciones - Implementa todas las recomendaciones de seguridad
- Prueba a fondo - Verifica que las medidas de seguridad funcionen como se espera
- Documenta las decisiones de seguridad - Lleva un registro de las decisiones de seguridad y de su justificación
Auditorías de seguridad periódicas
- Revisar los permisos de las funciones perimetrales
- Auditar las políticas RLS
- Comprobar si hay secretos expuestos
- Verificar los flujos de autenticación
- Probar los controles de acceso
Lista de comprobación de seguridad habitual
- Sin secretos en el código de frontend
- Toda la validación en Funciones Edge
- Políticas RLS implementadas y probadas
- Autenticación usando métodos seguros
- Aplicaciones internas correctamente protegidas
- Comprobador de seguridad ejecutado y recomendaciones aplicadas
- Revisiones de seguridad periódicas realizadas
Uso del comprobador de seguridad de Lovable
- Ejecuta el comprobador de seguridad en el panel de tu proyecto
- Revisa todas las recomendaciones con atención
- Implementa las correcciones sugeridas de forma inmediata
- Vuelve a ejecutar el comprobador después de hacer cambios
- Documenta cualquier excepción con una justificación clara